Golang的MySQL预处理

预处理执行过程

1.编译器将SQL语句分为两部分,命令部分与数据部分;
2.编译器把命令发送给MySQL服务端,MySQL服务端进行MySQL预处理;
3.编译器将数据发送给MySQL服务端,并进行占位符的替换。

为什么进行预处理

预处理避免了MySQL服务端的SQL语句重复执行的问题,提升服务器性能,同时,令编译器提前预处理节省后续编译成本,避免了SQL注入问题。

Golang中的MySQL预处理

//预处理查询实例
func prepareQuery() {
	stmt,err := db.Prepare("select id,name,email from `user` where id > ?")
	if err != nil {
		fmt.Println("预处理失败,err:",err)
	}
	defer stmt.Close()
	rows,err := stmt.Query(0)
	if err != nil {
		fmt.Println("查询失败",err)
	}
	defer rows.Close()
	//循环读取数据
	for rows.Next() {
		err := rows.Scan(&u.Id,&u.Name,&u.Email)
		if err != nil {
			fmt.Println("扫描失败",err)
			return
		}
		fmt.Printf("id:%d name:%s email:%s \n",u.Id,u.Name,u.Email)
	}
}

插入,删除,更新大家可以自己尝试一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

smile_new

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值