zoukankan      html  css  js  c++  java
  • orm 原生数据操作

      1 package main
      2 import (
      3     "fmt"
      4     "github.com/astaxie/beego"
      5     "github.com/astaxie/beego/logs"
      6         "os"
      7     "log"
      8     "strings"
      9         _ "github.com/go-sql-driver/mysql"
     10     _"cms/beegodb/models"
     11     "github.com/astaxie/beego/orm"
     12     "bufio"
     13     "cms/beegodb/models"
     14     "encoding/json"
     15 
     16     "strconv"
     17 )
     18 
     19 var ConsoleLogs *logs.BeeLogger
     20 var FileLogs *logs.BeeLogger
     21 func init(){
     22     ConsoleLogs = logs.NewLogger(1000)
     23     ConsoleLogs.SetLogger("console")
     24     FileLogs = logs.NewLogger(1000)
     25     FileLogs.SetLogger("file",`{"filename":”logs/log.log"}`)
     26 }
     27 func logmsg(str string)  {
     28     log := logs.NewLogger()
     29     log.Alert(str)
     30     log.SetLogger(logs.AdapterConsole)
     31     log.Debug("this is a debug message")
     32     r := bufio.NewReader(os.Stdin)
     33     for {
     34         fmt.Print("Command> ")
     35         b, _, _ := r.ReadLine()
     36         line := string(b)
     37         tokens := strings.Split(line, " ")
     38         fmt.Println("Command:", tokens[0])
     39     }
     40 }
     41 
     42 //多表查询
     43 func GetQuerList()  {
     44      var maps []orm.Params
     45      orm1 := orm.NewOrm()
     46      var sqlstr  string
     47      sqlstr ="SELECT us.id,us.name,us.pwd,us.pwd,";
     48      sqlstr+="ua.user_id,ua.id,ua.article_id,";
     49      sqlstr+="ar.article_type_id,ar.id,ar.arti_name,arts.id,arts.tname";
     50      sqlstr+=" from ";
     51      sqlstr+="user as us,user_articles as ua,article as ar,article_type as arts"
     52      sqlstr+=" WHERE us.id=ua.user_id and ar.article_type_id=arts.id"
     53      sql:=sqlstr;
     54      rs,err:=orm1.Raw(sql).Values(&maps)
     55      if err == nil {
     56         fmt.Printf("Result Nums: %d
    ",rs)
     57         for _, m := range maps {
     58             fmt.Println("用户:",m["name"],"密码:",m["pwd"],m["arti_name"],m["tname"])
     59         }
     60     }
     61     jsonData, err := json.Marshal(maps)
     62     fmt.Println("多条数据查询结果", maps," 
    ",jsonData)
     63     checkErr(err)
     64 }
     65 func QuerySqlAdd() {
     66     orm := orm.NewOrm()
     67     var sqlstr string
     68     var us models.User
     69     us.Name="dqh"
     70     us.Pwd="dqh"
     71     sqlstr = "insert into user (id,name,pwd) values(null, '"+us.Name+"','"+us.Pwd+"')";
     72     fmt.Println(sqlstr)
     73     res, err := orm.Raw(sqlstr).Exec()
     74     if err == nil {
     75         ins_id,_ := res.LastInsertId();
     76         fmt.Println("添加一行: ", ins_id)
     77     }
     78 }
     79 //删除数据
     80 func QuerySqldel() {
     81     orm := orm.NewOrm()
     82     var sqlstr string
     83     var us models.User
     84     us.Id = 109
     85     sqlstr = "delete from user where id =" + strconv.Itoa(us.Id)
     86     fmt.Println(sqlstr)
     87     res, err := orm.Raw(sqlstr).Exec()
     88     if err == nil {
     89         num, _ := res.RowsAffected()
     90         fmt.Println("mysql row affected nums: ", num)
     91     }
     92 }
     93 //更新数据
     94 func QuerySqlUp(){
     95     orm := orm.NewOrm()
     96     var sqlstr string
     97     var us models.User
     98     us.Name="44"
     99     us.Pwd="67"
    100     us.Id=115
    101     sqlstr ="update user set name="+us.Name+",pwd="+us.Pwd+" where id="+strconv.Itoa(us.Id)+""
    102     fmt.Println(sqlstr)
    103     res, err := orm.Raw(sqlstr).Exec()
    104     if err == nil {
    105         num, _ := res.RowsAffected()
    106         fmt.Println("mysql row affected nums: ", num)
    107     }
    108 }
    109 func GetQueryVlue()  {
    110     var lists []orm.ParamsList
    111     orm := orm.NewOrm()
    112     num, err := orm.Raw("SELECT * FROM user").ValuesList(&lists)
    113     if err == nil && num > 0 {
    114         fmt.Println(lists[7][0]) // slene
    115     }
    116 }
    117 //orm sql1行数据查询
    118 func GetQueryRow() {
    119     //1.创建user对象
    120     var user models.User
    121     //2.创建orm
    122     orm := orm.NewOrm()
    123     user.Id=118
    124     //3.通过sql语句查询
    125     err := orm.Raw("select * from user where id = ?",user.Id).QueryRow(&user)
    126     //4.处理错误
    127     if err != nil {
    128         fmt.Println("err = ", err)
    129         beego.Info("查询出错!")
    130         return
    131     }
    132     //5.打印结果
    133     fmt.Println("输出", user.Name)
    134     beego.Info("查询成功!")
    135 
    136 }
    137 func SelectById(id int)  models.User {
    138     var us models.User
    139     o:=orm.NewOrm()
    140     id=122
    141     us.Id=id
    142     _ = o.Raw("select * from user where id=?", id).QueryRow(&us)
    143     return us
    144 }
    145 func main()  {
    146     //insertorm()
    147     GetQueryRow()
    148     GetQuerList()
    149     GetQueryVlue()
    150     QuerySqlAdd()
    151     QuerySqlUp()
    152     QuerySqldel()
    153     updateorm()
    154     chercorm()
    155     delorm()
    156     beego.Run()
    157 }
    158 //orm更新
    159 func updateorm(){
    160     o := orm.NewOrm()
    161     //2.查询要更新的结构体对象
    162     user := models.User{}
    163     //3.查询需要更新的数据
    164     user.Id = 118
    165     err := o.Read(&user)
    166     if err == nil {
    167         user.Name = "999"
    168         //5.更新
    169         _, err := o.Update(&user)
    170         if err != nil {
    171             logmsg("更新失败")
    172             fmt.Println("gxsb")
    173             return
    174         }
    175         logmsg("更新成功")
    176     }
    177 }
    178 //orm添加
    179 func insertorm()  {
    180     FileLogs.Alert("进入插入orm")
    181     o := orm.NewOrm()
    182     user :=models.User{}
    183     user.Name="admin"
    184     user.Pwd="admin"
    185     _,err := o.Insert(&user) //一定是地址
    186     checkErr(err)
    187     logmsg("插入成功")
    188 }
    189 //orm查询
    190 func chercorm()  {
    191     o := orm.NewOrm()
    192     user := models.User{}
    193     user.Name = "admin"
    194     user.Id = 114
    195     err := o.Read(&user, "Name", "Id")
    196     if err != nil {
    197         beego.Info("查询失败", err)
    198         logmsg("查询失败")
    199         return
    200     }
    201     logmsg("查询成功")
    202 }
    203 //orm删除
    204 func delorm(){
    205     o := orm.NewOrm()
    206     user:=models.User{}
    207     user.Id=114
    208     _,err:=o.Delete(&user,"Id")
    209     if err != nil {
    210         logmsg("删除失败")
    211         return
    212     }
    213     logmsg("删除成功")
    214 }
    215 func checkErr(err error){
    216     if err != nil {
    217         //panic(err)
    218         log.Fatal(err)
    219     }
    220 }
  • 相关阅读:
    Linux 实战
    bash 环境配置及脚本
    Linux vi/vim
    Linux 正则表达式
    001 KNN分类 最邻近算法
    测序名解
    流式细胞术
    CircRNA 环化RNA
    笔记总结
    Flume
  • 原文地址:https://www.cnblogs.com/dqh123/p/13879780.html
Copyright © 2011-2022 走看看