`
lavafree
  • 浏览: 534871 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用Go-SQL-Driver访问mysql数据库

    博客分类:
  • go
阅读更多

go语言提供了数据库访问的统一接口,但是自己自己的具体数据库访问驱动实现。
开源比较常用的有go-sql-driver/mysql(原来的go-mysql-driver)和mymysql
我个人比较倾向于go-sql-driver,实现规范,通用性强
Go-SQL-Driver是它的新名字,已经迁移到了gitbub,地址:https://github.com/Go-SQL-Driver/MySQL
安装使用很简单
$ go get github.com/Go-SQL-Driver/MySQL
就按装到GOPATH下了
使用也简单,拿他的例子:
新建一张表

CREATE TABLE `squareNum` (
  `number` int(11) NOT NULL,
  `squareNumber` int(11) NOT NULL,
  PRIMARY KEY (`number`)
)

 数据库操作

package main

import (
	"database/sql"
	"fmt"
	_ "github.com/Go-SQL-Driver/MySQL"  //引入mysql驱动
)

func main() {
	/*DSN数据源名称
		[username[:password]@][protocol[(address)]]/dbname[?param1=value1&paramN=valueN]
		user@unix(/path/to/socket)/dbname 
		user:password@tcp(localhost:5555)/dbname?charset=utf8&autocommit=true 
		user:password@tcp([de:ad:be:ef::ca:fe]:80)/dbname?charset=utf8mb4,utf8 
		user:password@/dbname 
		无数据库: user:password@/
	*/
	db, err := sql.Open("mysql", "root:123456@tcp(192.168.1.203:3306)/test") //第一个参数数驱动名
	if err != nil {
		panic(err.Error())
	}
	defer db.Close()

	// 欲编译语句,插入数据,这个是标准的go接口,所以只要标准sql,其他数据库通用的,只要换上面的驱动名
	stmtIns, err := db.Prepare("INSERT INTO squareNum VALUES( ?, ? )" ) // ? = 占位符
	if err != nil {
		panic(err.Error())
	}
	defer stmtIns.Close() // main结束是关闭

	// Prepare statement for reading data
	stmtOut, err := db.Prepare("SELECT squareNumber FROM squareNum WHERE number = ?")
	if err != nil {
		panic(err.Error())
	}
	defer stmtOut.Close()

	// Insert square numbers for 0-24 in the database
	for i := 0; i < 25; i++ {
		_, err = stmtIns.Exec(i, (i * i)) // 执行插入
		if err != nil {
			panic(err.Error())
		}
	}

	var squareNum int // we "scan" the result in here

	// Query the square-number of 13
	err = stmtOut.QueryRow(13).Scan(&squareNum) // WHERE number = 13
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("The square number of 13 is: %d", squareNum)

	// Query another number.. 1 maybe?
	err = stmtOut.QueryRow(1).Scan(&squareNum) // WHERE number = 1
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("The square number of 1 is: %d", squareNum)
}

 本文出处:http://blog.gcove.net/go-sql-driver-mysql.html

分享到:
评论

相关推荐

    github.com/go-sql-driver/mysql

    github.com/go-sql-driver/mysql,go语言连接数据库的驱动

    go-sql-driver.zip

    go语言mysql驱动,go-sql-driver 1.6,使用方法:https://blog.csdn.net/qq_30712797/article/details/121570445

    基于go-sql-driver/mysql的一个用于辅助操作数据库的Go包

    Gendry是一个用于辅助操作数据库的Go包。基于go-sql-driver/mysql,它提供了一系列的方法来为你调用标准库database/sql中的方法准备参数

    一个数据库操作框架,目前只支持Mysql, 使用 [go-sql-driver/mysql] 进行数据库连接和基本操作

    Beerus-DB是一个数据库操作框架,目前只支持Mysql, 使用 [go-sql-driver/mysql] 进行数据库连接和基本操作, 基于此做很多扩展,比如连接池管理、 多数据源,事务管理,单表无SQL操作, 多个表和复杂操作可以自己...

    Go语言中使用MySql数据库

     https://github.com/Go-SQL-Driver/MySQL 支持database/sql,全部采用go写。  https://github.com/ziutek/mymysql 支持database/sql,也支持自定义的接口,全部采用go写。  ...

    Go的各种db / SQL实用程序的基准测试结果-Golang开发

    golang-db-sql-benchmark流行的Go数据库/ SQL实用程序的基准的集合测试中的数据库database / sql + go-sql-driver / mysql gocraft / dbr Gorp Sqlx Squirrel数据库/ sql SQL golang-db-sql-benchmark A流行的Go...

    Go MySQL驱动程序是Go(golang)数据库/ sql程序包MySQL驱动程序-Golang开发

    Go-MySQL-Driver GoMySQL-Driver数据库/ sql软件包的功能要求安装用法DSN(数据源名称)密码协议地址参数示例Go-MySQL-Driver GoMySQL-Driver数据库/ sql软件包的功能要求安装用法DSN (数据源名称)密码协议地址...

    Go MySQL Driver是Go (golang)数据库/sql包的MySQL驱动程序

    Go-MySQL-DriverA MySQL-Driver for Go's packageFeaturesLightweight and Native Go implementation. No C-bindings, just pure GoConnections over TCP/IPv4, TCP/IPv6, Unix domain sockets or Automatic ...

    Go语言操作mysql数据库简单例子

    Go语言操作数据库非常的简单, 他也有一个类似JDBC的东西”database/sql” 实现类是”github.com/go-sql-driver/mysql” 使用过JDBC的人应该一看就懂 对日期的处理比较晦涩,没有JAVA流畅: 代码如下: package main ...

    golang-db:golang的数据库池助手

    注意:请使用go-sql-driver版本&gt; = 1.4 3个代码段 import "github.com/hopehook/golang-db/mysql" // get a mysql db pool as global variable DB := mysql . InitMySQLPool ( host , database , user , password ...

    Go进阶—Go操作Mysql数据库

    使用Go来操作mysql主要用到两个包 import ( database/sql _ github.com/go-sql-driver/mysql ) 第一个包是Go自带的数据库包。但是只有第一个是不够的,数据库有很多种,虽然大同小异,但是还是有区别。这次我们...

    Go MySQL Driver:用于 Go 的 (golang) 数据库/sql 包的 MySQL 驱动程序-开源

    自动处理断开的连接,以及自动连接池(通过数据库/sql 包)。 支持大于 16MB 的查询。 完整的 sql.RawBytes 支持。 它在准备好的语句中提供智能的 LONG DATA 处理。 通过文件许可名单和 io.Reader 支持保护 LOAD ...

    在golang中操作mysql数据库的实现代码

    前言 Golang 提供了database/sql包用于对SQL数据库的访问, 作为操作数据库的入口对象sql.DB, 主要为我们提供了两个重要的功能: •sql.DB 通过数据库驱动为我们提供管理底层数据库连接的打开和...Golang操作mysql数据库

    Golang中如何对MySQL进行操作详解

    Golang官方并没有提供数据库驱动,但通过database/sql/driver包来提供了实现驱动的标准接口。可以在Github上找到很多开源的驱动。 其中go-sql-driver/mysql是一个比较推荐的驱动,其完全支持database/sql接口。 ...

    Golang操作MySql数据库的完整步骤记录

    前言MySQL是业界常用的关系型数据库,在平时开发中会经常与MySql数据库打交道,所以在接下来将介绍怎么使用Go语言操作MySql数据库。下载MySql连接驱动Go语言中的database/sql包提供了保证SQL或类SQL数据库的泛用接口...

    Golang-Operate-Mysql:golang操作mysql的例子

    GOLANG操作Mysql示例1 官方参考文献地址:https://github.com/go-sql-driver/mysql2 databases.sql文件是新建数据库及其表的schema;3 main.go是golang操作Mysql的脚本示例;4 喜欢这个示例,请点亮小星星并关注我哦!

    sqldata:Go-操作Mysql更容易!

    sqldata:数据库操作 该库主要解决了读取MySQL数据并统一SQL & MySQL库操作(支持addr/driver_name客户端配置)的问题。 懒惰的外部库需要安装: go get github . com / go - sql - driver / mysqlgo get github . ...

    go-mybatis-generator:该项目是 mybatis-generator go版本的移植,

    go get github.com/go-sql-driver/mysql go build ./go-mybatis-generator -host localhost -username root -password root -dbname db #默认生成元数据到template/example.json文件中 Getting Started cd 生

    golangMysql驱动.zip

    go操作mysql的驱动包很多,当下比较流行的是Go-SQL-Driver/MySQL,文件内容是GO语言连接mysql数据库所需的驱动包,将该压缩文件直接解压到gopath的src目录下,即可使用

    Gendry是一个用于辅助操作数据库的Go包

    Gendry是一个用于辅助操作数据库的Go包。基于go-sql-driver/mysql,它提供了一系列的方法来为你调用标准库database/sql中的方法准备参数

Global site tag (gtag.js) - Google Analytics