zoukankan      html  css  js  c++  java
  • 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
    */

  • 相关阅读:
    nodejs 异步转同步整理
    使用async-utility 转换异步请求为同步
    cube.js schemaVersion npm 包
    开发一个cube.js schemaVersion 包装
    cube.js 多租户参考设计说明
    cube.js 调度&&查询队参考参数
    cube.js 自定义首页显示信息
    cube.js data-blending一些说明
    cube.js 新版本的一些特性
    cube.js TimeoutError: ResourceRequest timed out 问题参考解决方法
  • 原文地址:https://www.cnblogs.com/jiangxiangxiang/p/10926247.html
Copyright © 2011-2022 走看看