Go操作数据库

本文详细介绍了使用Go语言进行数据库操作的方法,包括安装和导入必要的包、连接数据库、执行增删改查操作、处理事务等关键步骤。通过具体示例展示了如何使用Prepare和Exec方法执行SQL语句,以及如何利用Query和QueryRow方法查询数据。

Go操作数据库

安装包
 go get github.com/go-sql-driver/mysql
导入包
import (
	"database/sql"
  	_ "github.com/go-sql-driver/mysql"
 )
连接数据库

db, err := sql.Open(“mysql”, “用户名:密码@tcp(ip:端口)/数据库名字?charset=utf8”)

db, err := sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8", 
dbUser, dbPass, dbHost, dbName))
if err != nil {
		return nil, err
	}
// 执行open函数并不会获得数据库连接的有效性,通常需要Ping()来进行
err = db.Ping()  
if err != nil {
	return nil, err
}

db.SetMaxIdleConns(maxIdle)   //设置最大连接数
db.SetMaxOpenConns(maxConn)   //设置最大闲置连接数
关闭数据库
db.close()
增删改
方法一:
stmt,err :=db.Prepare("")
if err != nil {
		Logger.Println(" err:", err)
		return
}
res, err := stmt.Exec(位置, "参数")
方法二:
res, err := stmt.Exec("sql语句", 参数列表)
获取刚刚添加的ID
id,err := res.LastInsertId()
获取影响行数
affect,err := res.RowAffected()
查询
		mv := "select * from tablename " +
			"where ..." 
		rows, err := db.Query(mv,value)
		if err != nil {
			Logger.Println("query err:", err)
			return
		}
		defer rows.Close()
		//遍历每一条数据
		for rows.Next() {
			var p = Person{}
			err := rows.Scan(&p.name,&p.age)
			
			if err != nil {
				Logger.Println("rows scan err:", err)
				return
			}
		}
查询单条记录
db.QueryRow("sql",value).Scan(&字段)
事务

开启一个事务:db.Begin()
回滚:tx.Rollback()
提交:tx.commit()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值