Go语言中MySQL数据库的应用

连接数据库

db, err := sql.Open("mysql", username:password@protocol(address)/dbname?param=value)

第一个参数是驱动器,第二个参数就是数据库信息。

defer db.Close()

断开数据库连接函数。

func Connect() *sql.DB {
	var DNS string
	DNS = "root:root@tcp(localhost:3306)/db?charset=utf8"
	db, err := sql.Open("mysql", DNS)
	if err != nil {
		fmt.Println(err)
	}
	return db
}

执行SQL命令

常用的SQL命令请点击这里
golang中,提供了db.Exec()
通过这个函数,可以直接用SQL命令来实现想要的操作,返回值是sql.Result

_, err := db.Exec("create table if not exists Item(id int primary key auto_increment,name varchar(30),price int);")

例如,上面这段代码就在MySQL中新建了一个表格。

预编译命令

如果需要在表中大量查询某些东西,每个查询中只有where字句的某些数值不一样。
试想一下,如果使用db.Exec(),不但涉及大量的数字转字符串的操作,而且代码也很不美观。
这里就需要预编译命令来解决这个问题。
golang中,提供了db.Prepare()
具体用法如下:

pre, _ := db.Prepare("select * from item where id=?;")

将每次改变的值用问号代替,接下来使用pre.Query()函数。

result, err := pre.Query(num)

这样result就是在item表格中,查询idnum的结果。

sql.Result的读取

对于从MySQL数据库返回的值,是一个行的集合,提供了reselt.Scan()函数。

	for result.Next() {
		result.Scan(&Id)
	}

建议Id的类型为sql.Nullint32等类型,方便判断。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值