Go原生就支持连接数据库,所以在使用 Golang 开发时,当需要数据库交互时,即可使用database/sql包。
sql.DB
database/sql
github.com/go-sql-driver/mysql
包名前的"_"
import 下划线(如:import _ github/demo)的作用:当导入一个包时,该包下的文件里所有init()函数都会被执行,然而,有些时候我们并不需要把整个包都导入进来,仅仅是是希望它执行init()函数而已。这个时候就可以使用 import _ 引用该包。
上面的MySQL驱动中引入的就是MySQL包中各个init()方法,你无法通过包名来调用包中的其他函数。导入时,驱动的初始化函数会调用sql.Register将自己注册在database/sql包的全局变量sql.drivers中,以便以后通过sql.Open访问。
案例用数据表
初始化数据库连接
"用户名:密码@tcp(IP:端口)/数据库?charset=utf8"*sql.DB
QueryExec
QueryExec
常见数据库操作模式:
QueryRowQueryPrepare
查询操作
执行流程
db.Query()Rowsrows.Next()rows.Scanrows.Err()rows.Close()
增删改和Exec
ResultResult
准备查询
db.Prepare
占位符
$NN?:param1
5. 事务的使用
db.Begin()BeginTxTxCommit()Rollback()TxTxsql.DBQuery,Exec
目前交流群已有 800+人,旨在促进技术交流,可关注公众号