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\n",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," \n",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 }