Golang-使用mysql
2024-09-03 08:45:11
一、安装mysql-driver驱动
go get github.com/go-sql-driver/mysql
二、安装完毕之后,就可以通过go语言操作mysql了
const (
_selectUser = "select name,age from user where id = ?"
_updateUser = "update user set name = ? where name = ?"
_insertUser = "insert user (name,age) values (?,?)"
_deleteUser = "delete user where id = ?"
)
func main () {
var (
err error
)
// 得到一个db对象
// Open方法第二个参数: 用户名:密码@协议(ip:端口)/数据库
db,err := sql.Open("mysql","root:root@tcp(127.0.0.1:3306)/day0731")
if err != nil {
fmt.Println(err)
return
}
defer db.Close()
// 这里我们拿到了db这个对象,就可以对day0731这个mysql数据库进行操作了
// 查询操作
// Query方法,返回值具体类型自己看
var (
name string
age int
)
resultRows,err := db.Query(_selectUser,1)
// 这里的name,age必须和sql语句顺序一致,也不能多传,也不能少传
err = resultRows.Scan(&name,&age)
if err != nil {
fmt.Println(err)
retrun
}
fmt.Println(name)
fmt.Println(age)
// QueryRow方法,查询的效果和上面一致
err = db.QueryRow(_selectUser,1).Scan(&name,&age)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(name)
fmt.Println(age)
// 插入、更新、删除操作
// Exec方法,执行一段sql语句
result,err := db.Exec(_updateUser,"朱春雨","朱宇")
if err != nil {
fmt.Println(err)
return
}
// result这个对象,他有两个方法,RowsAffected(),LastInsertId(),
// 分别返回影响的行数,还有就是最后插入的id
// 我们这里执行的是更新语句,就看这个方法就好了RowsAffected
rowCount,err := result.RowsAffected()
if err != nil {
fmt.Println(err)
return
}
if rowCount == 0 {
fmt.Println("更新操作失败")
return
}
fmt.Println("更新操作成功!")
}
三、对mysql的增删查改用Query,Exec方法就ok了,具体其他的方法参考go语言的官方文档
最新文章
- DXUT源码阅读笔记
- phpcmsv9多表联合查询分页功能实现
- linux使用flock文件锁解决crontab冲突问题
- c 标签
- DevExpress ASP.NET 使用经验谈(2)-XPO对象的使用(使用默认数据连接)
- js管理内存
- 《JavaScript DOM 编程艺术 》 笔记
- Asp.Net 常用工具类之加密——对称加密DES算法(2)
- Spring boot 整合mybatis
- Android studio 常见错误修改
- zabbix监控mysql最简单的方法
- 洛谷 P2542 [AHOI2005]航线规划 解题报告
- 关于 as 播放器的记录
- Linux下识别所有Android设备的方法
- Nginx服务器抵御CC攻击的相关配置讲解
- 函数嵌套>;作用域>;闭包函数
- web图形方案比较html5、GML、SVG、VML
- OC与JS交互之JavaScriptCore
- grunt-contrib-qunit安装过程中phantomjs安装报错问题解决
- bit &; byte &; B &; KB &; Kbps &; KBps &; ps
热门文章
- 发布jar包到远端github仓库使用(将github仓库当作maven仓库)
- UE4的联网系统研究
- cBioPortal 数据库
- quick player运行分析
- 数据接口-免费版(股票数据API)
- Learning to Track Any Object
- 转载【MySQL】MySQL5.X常用日志配置及5.7和5.6主从复制的区别
- JVM线程状态Running、Sleeping、Wait、Park、Monitor
- FreeSWITCH视频直播
- sys/cdefs.h No such file or directory