会话

worm提供了Session办法用于创立带配置的会话。应用会话能够共用一组配置,例如:开启SQL预编译,或者是SQL日志输入配置。会话该当只用于一个go routine中, 通常在一个HTTP处理器中创立并应用会话。例如:

func AddOrder(c *wego.WebContext) {    session := worm.NewSession()    session.ShowLog(true)    var order dao.Order    order.Create_time = time.Now().Unix()    //.....    var err error    order.Id, err = dbs.Model(&order).Insert()    if err != nil {        log.Error(err)        c.AbortWithText(510, err.Error())        return    }    c.WriteTextF(200, "%d", order.Id)}

应用SQL语句预编译

worm反对SQL语句的预编译,应用SQL语句预编译能够晋升数据库拜访的效率。在worm中能够通过三种形式开启SQL语句预编译:全局开启、会话中开启、语句中开启。

  • 开启全局预编译

    func main2() {  dbcnn, err := initMySql("account:pwd@tcp(127.0.0.1:3306)/db?charset=utf8&parseTime=True")  if err != nil {      log.Error(err)  }  defer dbcnn.Close()  err = worm.InitMysql(dbcnn)  if err != nil {      log.Error(err)      return  }  worm.ShowSqlLog(true)  //开启SQL语句预编译  worm.UsePrepare(true)  //设置预编译stmt缓存的最大数量  worm.SetMaxStmtCacheNum(1000)}
  • 会话中开启预编译

    func demoPrepareSession() {  session := worm.NewSession()  session.UsePrepare(true)  var user = User{Name:"name1", Age: 21, Created: time.Now()}  id, err := worm.Model(&user).Insert()  if err != nil{      log.Error(err)      return  }  _, err = worm.Model(&User{}).ID(id).Delete()  if err != nil{      log.Error(err)      return  }}
  • 语句中开启预编译

    func demoModelPrepare() {  var user = User{Name:"name1", Age: 21, Created: time.Now()}  _, err := worm.Model(&user).UsePrepare(true).Select("name", "age").ID(1).Update()  if err != nil{      log.Error(err)      return  }}

装置worm

go get github.com/haming123/wego/worm

worm应用文档

请点击:具体文档