• 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
    */

  • 相关阅读:
    oracle中delete、truncate、drop的区别
    js获取当前日期时间
    Linux 命令大全
    oracle sql语言模糊查询
    ibatis<iterate>标签
    ibatis中使用like模糊查询
    编辑距离12 · Edit Distance12
    分割回文串 II · Palindrome Partitioning II
    单词拆分 I · Word Break
    300最长上升子序列 · Longest Increasing Subsequence
  • 原文地址:https://www.cnblogs.com/jiangxiangxiang/p/10926247.html
Copyright © 2020-2023  润新知