# 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), } } ```