| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package engine
- import (
- "fmt"
- "github.com/gin-gonic/gin"
- "github.com/xormplus/xorm"
- )
- type ApiEngine struct {
- OrmEngine *xorm.Engine
- GinEngine *gin.Engine
- listen_addr string
- }
- func NewApiEngine(driverName, dataSourceName string, addr string) *ApiEngine {
- engine := &ApiEngine{}
- engine.OrmEngine, _ = xorm.NewEngine(driverName, dataSourceName)
- initOrmEngine(engine.OrmEngine, driverName)
- engine.GinEngine = gin.Default()
- engine.listen_addr = addr
- return engine
- }
- func initOrmEngine(orm *xorm.Engine, driverName string) {
- sqldir := "./sql/" + driverName
- //注册SqlMap配置,xml格式
- err := orm.RegisterSqlMap(xorm.Xml(sqldir, ".xml"))
- printError(err)
- //注册SqlTemplate配置,使用Pongo2模板引擎
- err = orm.RegisterSqlTemplate(xorm.Pongo2(sqldir, ".stpl"))
- printError(err)
- //注册SqlTemplate配置,使用Jet模板引擎
- err = orm.RegisterSqlTemplate(xorm.Jet(sqldir, ".jet"))
- printError(err)
- //注册SqlTemplate配置,使用html/template模板引擎
- err = orm.RegisterSqlTemplate(xorm.Default(sqldir, ".tpl"))
- printError(err)
- }
- func printError(err error) {
- if err != nil {
- fmt.Println(err.Error())
- }
- }
- func (g *ApiEngine) SyncDb(beans ...interface{}) error {
- return g.OrmEngine.Sync2(beans)
- }
- func (g *ApiEngine) Run() {
- g.GinEngine.Run(g.listen_addr)
- }
|