init.go 529 B

123456789101112131415161718192021222324252627282930313233
  1. package models
  2. import (
  3. "database/sql"
  4. "xorm.io/xorm/names"
  5. "github.com/go-kratos/kratos/v2/log"
  6. "xorm.io/xorm"
  7. _ "github.com/go-sql-driver/mysql"
  8. )
  9. type Mysql struct {
  10. XDB *xorm.Engine
  11. DB *sql.DB
  12. log *log.Helper
  13. }
  14. func NewMysql(source string, logger log.Logger) (*Mysql, error) {
  15. orm, err := xorm.NewEngine("mysql", source)
  16. if err != nil {
  17. return nil, err
  18. }
  19. orm.SetMapper(names.LintGonicMapper)
  20. m := &Mysql{
  21. XDB: orm,
  22. DB: orm.DB().DB,
  23. log: log.NewHelper("models/init", logger),
  24. }
  25. return m, nil
  26. }