The fantastic ORM library for Golang, aims to be developer friendly
全功能 ORM (无限接近)
关联 (Has One, Has Many, Belongs To, Many To Many, 多态)钩子 (在创建/保存/更新/删除/查找之前或之后)预加载事务复合主键SQL 生成器数据库自动迁移自定义日志可扩展性, 可基于 GORM 回调编写插件所有功能都被测试覆盖开发者友好go get -u github.com/jinzhu/gorm
连接mysql为例
mysqlConnectiPool.go
package mysqltools import ( "fmt" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql" "log" "sync" ) /* * MysqlConnectiPool * 数据库连接操作库 * 基于gorm封装开发 */ type MysqlConnectiPool struct { } var instance *MysqlConnectiPool var once sync.Once var db *gorm.DB var err_db error func GetInstance() *MysqlConnectiPool { once.Do(func() { instance = &MysqlConnectiPool{} }) return instance } /* * @fuc 初始化数据库连接(可在mail()适当位置调用) */ func (m *MysqlConnectiPool) InitDataPool() (issucc bool) { db, err_db = gorm.Open("mysql", "user:password@tcp(192.168.1.4:3306)/dbname?charset=utf8&parseTime=True&loc=Local") fmt.Println(err_db) if err_db != nil { log.Fatal(err_db) return false } //关闭数据库,db会被多个goroutine共享,可以不调用 // defer db.Close() return true } /* * @fuc 对外获取数据库连接对象db */ func (m *MysqlConnectiPool) GetMysqlDB() (db_con *gorm.DB) { return db }