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¶mN=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) }
相关推荐
github.com/go-sql-driver/mysql,go语言连接数据库的驱动
go语言mysql驱动,go-sql-driver 1.6,使用方法:https://blog.csdn.net/qq_30712797/article/details/121570445
Gendry是一个用于辅助操作数据库的Go包。基于go-sql-driver/mysql,它提供了一系列的方法来为你调用标准库database/sql中的方法准备参数
Beerus-DB是一个数据库操作框架,目前只支持Mysql, 使用 [go-sql-driver/mysql] 进行数据库连接和基本操作, 基于此做很多扩展,比如连接池管理、 多数据源,事务管理,单表无SQL操作, 多个表和复杂操作可以自己...
https://github.com/Go-SQL-Driver/MySQL 支持database/sql,全部采用go写。 https://github.com/ziutek/mymysql 支持database/sql,也支持自定义的接口,全部采用go写。 ...
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-Driver GoMySQL-Driver数据库/ sql软件包的功能要求安装用法DSN(数据源名称)密码协议地址参数示例Go-MySQL-Driver GoMySQL-Driver数据库/ sql软件包的功能要求安装用法DSN (数据源名称)密码协议地址...
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语言操作数据库非常的简单, 他也有一个类似JDBC的东西”database/sql” 实现类是”github.com/go-sql-driver/mysql” 使用过JDBC的人应该一看就懂 对日期的处理比较晦涩,没有JAVA流畅: 代码如下: package main ...
注意:请使用go-sql-driver版本> = 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来操作mysql主要用到两个包 import ( database/sql _ github.com/go-sql-driver/mysql ) 第一个包是Go自带的数据库包。但是只有第一个是不够的,数据库有很多种,虽然大同小异,但是还是有区别。这次我们...
自动处理断开的连接,以及自动连接池(通过数据库/sql 包)。 支持大于 16MB 的查询。 完整的 sql.RawBytes 支持。 它在准备好的语句中提供智能的 LONG DATA 处理。 通过文件许可名单和 io.Reader 支持保护 LOAD ...
前言 Golang 提供了database/sql包用于对SQL数据库的访问, 作为操作数据库的入口对象sql.DB, 主要为我们提供了两个重要的功能: •sql.DB 通过数据库驱动为我们提供管理底层数据库连接的打开和...Golang操作mysql数据库
Golang官方并没有提供数据库驱动,但通过database/sql/driver包来提供了实现驱动的标准接口。可以在Github上找到很多开源的驱动。 其中go-sql-driver/mysql是一个比较推荐的驱动,其完全支持database/sql接口。 ...
前言MySQL是业界常用的关系型数据库,在平时开发中会经常与MySql数据库打交道,所以在接下来将介绍怎么使用Go语言操作MySql数据库。下载MySql连接驱动Go语言中的database/sql包提供了保证SQL或类SQL数据库的泛用接口...
GOLANG操作Mysql示例1 官方参考文献地址:https://github.com/go-sql-driver/mysql2 databases.sql文件是新建数据库及其表的schema;3 main.go是golang操作Mysql的脚本示例;4 喜欢这个示例,请点亮小星星并关注我哦!
sqldata:数据库操作 该库主要解决了读取MySQL数据并统一SQL & MySQL库操作(支持addr/driver_name客户端配置)的问题。 懒惰的外部库需要安装: go get github . com / go - sql - driver / mysqlgo get github . ...
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 生
go操作mysql的驱动包很多,当下比较流行的是Go-SQL-Driver/MySQL,文件内容是GO语言连接mysql数据库所需的驱动包,将该压缩文件直接解压到gopath的src目录下,即可使用
Gendry是一个用于辅助操作数据库的Go包。基于go-sql-driver/mysql,它提供了一系列的方法来为你调用标准库database/sql中的方法准备参数