GORM 官方支持的数据库类型有: MySQL, PostgreSQL, SQlite, SQL Server

以MySQL数据库的连接作为示例

一、直接连接

定义数据库连接的字符串
然后使用 gorm.Open( ) 来建立数据库连接

  1. import (
  2. "gorm.io/driver/mysql"
  3. "gorm.io/gorm"
  4. )
  5. func main() {
  6. // 参考 https://github.com/go-sql-driver/mysql#dsn-data-source-name 获取详情
  7. dsn := "user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
  8. db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
  9. }

创建数据库连接的时候可以配置当前的时间
更改创建时间使用的函数

  1. db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{
  2. NowFunc: func() time.Time {
  3. return time.Now().Local()
  4. },
  5. })

二、通过现有的数据库连接来初始化*gorm.DB

  1. func InitSQL() (err error) {
  2. /*使用database/sql建立的数据库连接*/
  3. dsn := "flutter:yu020506@tcp(1.117.163.52:3306)/flutter?charset=utf8&parseTime=true"
  4. dao.DB, err = sql.Open("mysql", dsn)
  5. if err != nil {
  6. return err
  7. }
  8. dao.GormDB, err = gorm.Open(gormMysql.New(gormMysql.Config{
  9. Conn: dao.DB, // 使用database/sql的数据库连接来初始化gorm.DB的初始化连接
  10. }), &gorm.Config{
  11. NowFunc: func() time.Time {
  12. return time.Now().Local()
  13. },
  14. })
  15. if err != nil {
  16. return err
  17. }
  18. err = dao.DB.Ping()
  19. if err != nil {
  20. return err
  21. }
  22. return nil
  23. }