golang学习----数据库操作
golang 操作数据库
连接数据库
连接数据库我们首先需要下载相应数据库的驱动,这里我们选择的是
-
go get github.com/go-sql-driver/mysql
拉取驱动,若是其他数据库可以修改后面的名称或去相应的github 上寻找 -
import ( _ "github.com/go-sql-driver/mysql")
在代码中导入这个驱动包,这么做会调用mysql 包中的init 方法。 -
var db *sql.DB func conn(){ open, err := sql.Open("mysql","user:password@tcp(127.0.0.1:3306)/demo_db") // 这里的地址若是本地3306接口可以写成user:password@tcp(127.0.0.1:3306)/demo_db if err!=nil { log.Fatal(err) panic(err)} db = open }
数据操作
插入数据
// 数据添加
func add(){
_, err := db.Exec("insert into user (name, age, email) value (?,?,?)", "张三", 20, "zhang@example.com")
if err!=nil {
fmt.Println(err)
panic(err)
}
}
删除数据
// 数据删除
func remove(){
exec, err := db.Exec("delete from user where id = ?", 6)
if err != nil {
fmt.Println(err)
panic(err)
}
fmt.Println(exec.RowsAffected())
}
修改数据
func modify(){
exec, err := db.Exec("update user set name = ?,age = ? where id = ?", "babiqus", "22", 6)
if err!=nil {
fmt.Println(err)
panic(err)
}
fmt.Println(exec.RowsAffected())
}
查询数据
func query() {
query, err := db.Query("select * from user")
if err!=nil {
log.Fatal(err)
panic(err)
}
defer query.Close()
// 必须要把 query 里的内容读完,或者显式调用 Close() 方法,
// 否则在 defer 的 rows.Close() 执行之前,连接永远不会释放
var userList []User
for query.Next(){
user := new(User)
err := query.Scan(&user.id,&user.name,&user.age,&user.email)
if err != nil{
log.Fatal(err)
}
userList = append(userList, *user)
}
for _, value := range userList {
fmt.Println(value)
}
}
使用
func init(){
conn()
}
func main() {
//add()
//modify()
//remove()
query()
defer db.Close()
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!