博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用Go-SQL-Driver访问mysql数据库
阅读量:6422 次
发布时间:2019-06-23

本文共 2036 字,大约阅读时间需要 6 分钟。

hot3.png

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 mainimport (	"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)}

go语言的数据库操作封装很好,比java的简单的多。o(∩∩)o...哈哈

转载于:https://my.oschina.net/baowenke/blog/112767

你可能感兴趣的文章
html5-离线缓存
查看>>
linux系统安装完后的常见工作
查看>>
在Linux服务器、客户端中构建密钥对验证进行远程连接
查看>>
揪出MySQL磁盘消耗迅猛的真凶
查看>>
和“C”的再遇
查看>>
一键安装kubernetes 1.13.0 集群
查看>>
RabbitMq的集群搭建
查看>>
spring boot + mybatis 同时访问多数据源
查看>>
URL中汉字转码
查看>>
[转]go正则实例
查看>>
Selector中关于顺序的注意事项
查看>>
小黑小波比.清空<div>标签内容
查看>>
Java中的ExceptionInInitializerError异常及解决方法
查看>>
Spring 注入bean时的初始化和销毁操作
查看>>
java线程同步原理(lock,synchronized)
查看>>
MyEclipse中使用Hql编辑器找不到Hibernate.cfg.xml文件解决方法
查看>>
yRadio以及其它
查看>>
第四节 对象和类
查看>>
闪迪(SanDisk)U盘防伪查询(官方网站)
查看>>
Android onMeasure方法介绍
查看>>