30 lines
790 B
Markdown
30 lines
790 B
Markdown
# gorm
|
|
|
|
[官网文档](https://gorm.io/zh_CN/docs/)
|
|
|
|
**使用gorm + sqlx,但是复用sql连接**
|
|
|
|
```go
|
|
func NewServiceContext(c config.Config) *ServiceContext {
|
|
logx.Infof("Cache config: %+v", c.CacheRedis)
|
|
|
|
gormDB, err := gorm.Open(postgres.Open(c.Database.DataSource), &gorm.Config{})
|
|
if err != nil {
|
|
msg := fmt.Sprintf("连接数据库失败 %s ", err.Error())
|
|
logx.Error(msg)
|
|
panic(msg)
|
|
}
|
|
sqlDB, err := gormDB.DB()
|
|
if err != nil {
|
|
msg := fmt.Sprintf("获取底层连接失败: %s", err.Error())
|
|
logx.Error(msg)
|
|
panic(msg)
|
|
}
|
|
sqlxConn := sqlx.NewSqlConnFromDB(sqlDB)
|
|
return &ServiceContext{
|
|
Config: c,
|
|
UserAuthModel: models.NewUserAuthModel(sqlxConn, c.CacheRedis, gormDB),
|
|
}
|
|
}
|
|
```
|