new
gorm v2 support
This commit is contained in:
@@ -3,12 +3,12 @@ package genfunc
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/jinzhu/gorm"
|
||||
"github.com/xxjwxc/gormt/data/view/genfunc/model"
|
||||
"gorm.io/gorm"
|
||||
|
||||
_ "github.com/go-sql-driver/mysql"
|
||||
"github.com/xxjwxc/public/mysqldb"
|
||||
"gorm.io/driver/mysql"
|
||||
)
|
||||
|
||||
/**
|
||||
@@ -16,20 +16,46 @@ import (
|
||||
*/
|
||||
|
||||
func GetGorm(dataSourceName string) *gorm.DB {
|
||||
db, err := gorm.Open("mysql", dataSourceName)
|
||||
db, err := gorm.Open(mysql.Open(dataSourceName), &gorm.Config{PrepareStmt: false})
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
db.LogMode(true)
|
||||
return db
|
||||
sqlDB, err := db.DB()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
// SetMaxIdleConns 设置空闲连接池中连接的最大数量
|
||||
sqlDB.SetMaxIdleConns(10)
|
||||
|
||||
// SetMaxOpenConns 设置打开数据库连接的最大数量。
|
||||
sqlDB.SetMaxOpenConns(100)
|
||||
|
||||
// SetConnMaxLifetime 设置了连接可复用的最大时间。
|
||||
sqlDB.SetConnMaxLifetime(time.Hour)
|
||||
|
||||
return db.Debug()
|
||||
}
|
||||
|
||||
func NewDB(){
|
||||
db, _ := gorm.Open(...)
|
||||
db.Model(&AAA).Where("aaa = ?", 2)
|
||||
}
|
||||
|
||||
func CallFunc(db *gorm.DB){
|
||||
// select a...
|
||||
var bbb BBB
|
||||
db.Table("bbb").Where("bbb = ?", 2).Find()
|
||||
}
|
||||
|
||||
// TestFuncGet 测试条件获(Get/Gets)
|
||||
func TestFuncGet(t *testing.T) {
|
||||
model.OpenRelated() // 打开全局预加载 (外键)
|
||||
|
||||
db := GetGorm("root:qwer@tcp(127.0.0.1:3306)/matrix?charset=utf8&parseTime=True&loc=Local&interpolateParams=True")
|
||||
defer db.Close()
|
||||
db := GetGorm("root:123456@tcp(127.0.0.1:3306)/matrix?charset=utf8&parseTime=True&loc=Local&interpolateParams=True")
|
||||
defer func() {
|
||||
sqldb, _ := db.DB()
|
||||
sqldb.Close()
|
||||
}()
|
||||
|
||||
accountMgr := model.AccountMgr(db.Where("account_id = ?", 2))
|
||||
account, err := accountMgr.Get() // 单条获取
|
||||
@@ -45,11 +71,14 @@ func TestFuncGet(t *testing.T) {
|
||||
|
||||
// TestFuncOption 功能选项方式获取
|
||||
func TestFuncOption(t *testing.T) {
|
||||
// db := GetGorm("root:qwer@tcp(127.0.0.1:3306)/matrix?charset=utf8&parseTime=True&loc=Local&interpolateParams=True")
|
||||
// defer db.Close()
|
||||
orm := mysqldb.OnInitDBOrm("root:qwer@tcp(127.0.0.1:3306)/matrix?charset=utf8&parseTime=True&loc=Local&interpolateParams=True") // 推荐方式
|
||||
defer orm.OnDestoryDB()
|
||||
db := orm.DB
|
||||
db := GetGorm("root:qwer@tcp(127.0.0.1:3306)/matrix?charset=utf8&parseTime=True&loc=Local&interpolateParams=True")
|
||||
defer func() {
|
||||
sqldb, _ := db.DB()
|
||||
sqldb.Close()
|
||||
}()
|
||||
// orm := mysqldb.OnInitDBOrm("root:qwer@tcp(127.0.0.1:3306)/matrix?charset=utf8&parseTime=True&loc=Local&interpolateParams=True") // 推荐方式
|
||||
// defer orm.OnDestoryDB()
|
||||
// db := orm.DB
|
||||
|
||||
accountMgr := model.AccountMgr(db)
|
||||
accountMgr.SetIsRelated(true) // 打开预加载 (外键)
|
||||
@@ -65,7 +94,10 @@ func TestFuncOption(t *testing.T) {
|
||||
// TestFuncFrom 单元素方式获取
|
||||
func TestFuncFrom(t *testing.T) {
|
||||
db := GetGorm("root:qwer@tcp(127.0.0.1:3306)/matrix?charset=utf8&parseTime=True&loc=Local&interpolateParams=True")
|
||||
defer db.Close()
|
||||
defer func() {
|
||||
sqldb, _ := db.DB()
|
||||
sqldb.Close()
|
||||
}()
|
||||
|
||||
accountMgr := model.AccountMgr(db)
|
||||
accountMgr.SetIsRelated(true) // 打开预加载 (外键)
|
||||
@@ -82,7 +114,10 @@ func TestFuncFrom(t *testing.T) {
|
||||
// TestFuncFetchBy 索引方式获取
|
||||
func TestFuncFetchBy(t *testing.T) {
|
||||
db := GetGorm("root:qwer@tcp(127.0.0.1:3306)/matrix?charset=utf8&parseTime=True&loc=Local&interpolateParams=True")
|
||||
defer db.Close()
|
||||
defer func() {
|
||||
sqldb, _ := db.DB()
|
||||
sqldb.Close()
|
||||
}()
|
||||
|
||||
accountMgr := model.AccountMgr(db)
|
||||
accountMgr.SetIsRelated(true) // 打开预加载 (外键)
|
||||
|
||||
Reference in New Issue
Block a user