zhangjq 6 gadi atpakaļ
revīzija
e01d4cbee9
1 mainītis faili ar 55 papildinājumiem un 0 dzēšanām
  1. 55 0
      apiengine.go

+ 55 - 0
apiengine.go

@@ -0,0 +1,55 @@
+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)
+}