-
查询单条数据使用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 */
相关文章
- 01-11Winform中只运行运行一个实例的方法
- 01-11找不到方法:'System.Net.Http.HttpRequestMessage System.Web.Http.Controllers.HttpActionContext.get_Request()'
- 01-11找不到方法: Int32 System.Environment.get_CurrentManagedThreadId() .
- 01-11找不到方法:“Boolean System.Runtime.Serialization.DataContractAttribute.get_IsReference()”的解决办法
- 01-11扩展Mongoose Model的静态方法和实例方法
- 01-11.net Strings.Split静态方法和mystring.Split 实例方法在处理空字符串时的不同
- 01-11js阻止默认事件 (两种方法)及键盘事件onkeydown 、 onkeypress 、onkeyup实例讲解
- 01-11在Python中装饰实例方法
- 01-11实例方法上的Python装饰器
- 01-11Python – 我可以以编程方式从类实例中修饰类方法吗?