Go语言之数据库操作 | 青训营笔记

97 阅读1分钟

Go语言对数据库的操作可以通过标准库中的database/sql和第三方库来实现。

database/sql包是Go语言直接提供的用于数据库操作的标准库,它提供了统一的接口来访问各种不同类型的关系型数据库,例如MySQL、PostgreSQL、SQLite等。通过该包,我们可以方便地进行数据库连接、执行SQL语句、事务处理等操作。同时,database/sql也支持连接池等特性,能够提升数据库的性能。

database/sql操作数据库

//导入依赖
import (
	"database/sql"
	"fmt"
	_ "github.com/go-sql-driver/mysql"
)
//连接数据库和操作,在函数中实现
db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/test")
defer db.Close()
//增删改查的一般操作
_, err = db.Exec("INSERT INTO user(id, name, age, email) VALUES (?, ?, ?, ?)", user.ID, user.Name, user.Age, user.Email)
	if err != nil {
		fmt.Println(err)
		return
	}

在具体操作时,只需要添加异常处理,更改db.Exec()括号内的sql语句即可,注意查询要使用db.Query()其余大致相同。

其他方式

除了database/sql包,还有很多第三方库可以用于数据库操作,例如GORM、Xorm等。这些库一般都提供了更为方便的ORM(对象关系映射)操作,可以更加高效地操作数据库。

GORM的使用很像Java的mybatis-plus,他们可以将我自定义的结构体或类对应到数据库的表,并提供了很多封装好的方法和接口,使得代码简洁且易维护。

但是要注意,在使用GORM时,根据需要对字段使用 gorm:"column:columnName" 手动指定对应到的属性。在对多表操作时,考虑使用事务,用 tx := db.Begin() 开启一个事务并用 tx.Commit() 结束事务。