设为首页 加入收藏

TOP

xorm -Get方法实例
2019-05-26 16:14:36 】 浏览:24
Tags:xorm -Get 方法 实例
  • 查询单条数据使用Get方法,在调用Get方法时需要传入一个对应结构体的指针,同时结构体中的非空field自动成为查询的条件和前面的方法条件组合在一起查询

    package main
    
    import (
      "fmt"
      _ "github.com/go-sql-driver/mysql"
      "github.com/go-xorm/xorm"
      "log"
      "time"
    )
    
    var engine *xorm.Engine
    
    type User struct {
      Name      string    `xorm:"varchar(25) 'name'"`
      Id        int       `xorm:"pk 'id' autoincr"`
      CreatedAt time.Time `xorm:"created"`
    }
    
    func main() {
      var err error
      engine, err = xorm.NewEngine("mysql", "root:123456@/test")
      if err != nil {
          log.Fatal(err)
          return
      }
    
      err = engine.CreateTables(User{})
      if err != nil {
          log.Fatal(err)
          return
      }
    
      u := make([]User, 5)
      u[0].Name = "abcd"
      u[1].Name = "acbd"
      u[2].Name = "dbac"
      u[3].Name = "cbda"
      u[4].Name = "bdca"
    
      _, err = engine.Insert(u)
      if err != nil {
          log.Fatal(err)
          return
      }
    
      /*1) 根据Id来获得单条数据:*/
    
      fmt.Println("=============id()==================")
      uu := new(User)
      has, err := engine.Id(1).Get(uu)
      if err != nil {
          log.Fatal(err)
          return
      }
      if has {
          fmt.Println(uu.Name)
      }
    
      /*  2) 根据Where来获得单条数据*/
    
      fmt.Println("=============where()==================")
      has, err = engine.Where("id =?",1).Get(uu)
      if err != nil {
          log.Fatal(err)
          return
      }
      if has {
          fmt.Println(uu.Name)
      }
    
    
      /*3) 根据user结构体中已有的非空数据来获得单条数据
      返回的结果为两个参数,一个has为该条记录是否存在,第二个参数err为是否有错误。不管err是否为nil,has都有可能为true或者false。
      */
      fmt.Println("===============user结构体中已有的非空数据================")
      uu = &User{Id:1}
      has, err = engine.Get(uu)
      if err != nil {
       
    		    

    log.Fatal(err) return } if has { fmt.Println(uu.Name) } } /* 输出: =============id()================== abcd =============where()================== abcd ===============user结构体中已有的非空数据================ abcd */

编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇defer, panic, recover使用总结 下一篇xorm实例-创建xorm,映射

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(217) }