pull/145/head
zhaoshichen 6 years ago
parent 8c32361034
commit 70a579e1cc
  1. 32
      doc/wiki-cn/database-mysql.md

@ -60,12 +60,12 @@
进入项目的internal/dao目录,打开dao.go,其中: 进入项目的internal/dao目录,打开dao.go,其中:
```go ```go
var ( var (
dc struct { dc struct {
Demo *sql.Config Demo *sql.Config
} }
) )
checkErr(paladin.Get("mysql.toml").UnmarshalTOML(&dc)) checkErr(paladin.Get("mysql.toml").UnmarshalTOML(&dc))
``` ```
使用paladin配置管理工具将上文中的mysql.toml中的配置解析为我们需要使用mysql的相关配置。 使用paladin配置管理工具将上文中的mysql.toml中的配置解析为我们需要使用mysql的相关配置。
@ -79,9 +79,9 @@ type Dao struct {
在dao的主结构提中定义了mysql的连接池对象。 在dao的主结构提中定义了mysql的连接池对象。
```go ```go
dao = &Dao{ dao = &Dao{
db: sql.NewMySQL(dc.Demo), db: sql.NewMySQL(dc.Demo),
} }
``` ```
使用kratos/pkg/database/sql包的NewMySQL方法进行连接池对象的初始化,需要传入上文解析的配置。 使用kratos/pkg/database/sql包的NewMySQL方法进行连接池对象的初始化,需要传入上文解析的配置。
@ -191,37 +191,37 @@ kratos/pkg/database/sql包支持事务操作,具体操作示例如下:
开启一个事务: 开启一个事务:
```go ```go
tx := d.db.Begin() tx := d.db.Begin()
if err = tx.Error; err != nil { if err = tx.Error; err != nil {
log.Error("db begin transcation failed, err=%+v", err) log.Error("db begin transcation failed, err=%+v", err)
return return
} }
``` ```
在事务中执行语句: 在事务中执行语句:
```go ```go
res, err := tx.Exec(_demoSQL, did) res, err := tx.Exec(_demoSQL, did)
if err != nil { if err != nil {
return return
} }
rows := res.RowsAffected() rows := res.RowsAffected()
``` ```
提交事务: 提交事务:
```go ```go
if err = tx.Commit().Error; err!=nil{ if err = tx.Commit().Error; err!=nil{
log.Error("db commit transcation failed, err=%+v", err) log.Error("db commit transcation failed, err=%+v", err)
} }
``` ```
回滚事务: 回滚事务:
```go ```go
if err = tx.Rollback().Error; err!=nil{ if err = tx.Rollback().Error; err!=nil{
log.Error("db rollback failed, err=%+v", rollbackErr) log.Error("db rollback failed, err=%+v", rollbackErr)
} }
``` ```
# 扩展阅读 # 扩展阅读

Loading…
Cancel
Save