beego ORM配置及使用实例

来源:互联网 发布:windows media player 编辑:程序博客网 时间:2024/06/01 09:05

转载请注明来源-作者@loongshawn:http://blog.csdn.net/loongshawn/article/details/54973203,建议读者阅读原文,确保获得完整的信息

1、ORM配置

package mainimport (    "fmt"    "github.com/astaxie/beego/orm"    _ "github.com/go-sql-driver/mysql")type User struct {    Id          int    Age         int16    Name        string}func init() {    orm.RegisterDriver("mysql", orm.DRMySQL)    orm.RegisterModel(new(User))    orm.RegisterDataBase("default", "mysql", "root:root@tcp(123.123.123.123:3306)/test?charset=utf8")}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

2、操作实例

以下操作的数据库为MySQL,数据表结构为:

CREATE TABLE `user` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `age` int(11) DEFAULT NULL,  `name` varchar(255) DEFAULT NULL,  `enabled` int(1) NOT NULL DEFAULT '1',  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

这里写图片描述

2.1、数据插入

插入一条用户记录,用户名为wood。

func insert(){    orm.Debug = true;    o := orm.NewOrm()    o.Using("default") // 默认使用 default,你可以指定为其他数据库    user := User{Name: "wood"}    fmt.Println(o.Insert(&user))}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

运行结果

[ORM]2017/02/14 17:46:20  -[Queries/default] - [  OK /     db.Exec /    33.6ms] - [INSERT INTO `user` (`age`, `name`) VALUES (?, ?)] - `0`, `wood`10 <nil>
  • 1
  • 2
  • 1
  • 2

2.2、数据删除

删除Id等于9的记录,其中Id为主键。

func delete(){    orm.Debug = true;    o := orm.NewOrm()    o.Using("default") // 默认使用 default,你可以指定为其他数据库    user := User{Id : 9,Name: "koome"}    fmt.Println(o.Delete(&user))}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

运行结果

[ORM]2017/02/14 17:48:33  -[Queries/default] - [  OK /     db.Exec /    37.9ms] - [DELETE FROM `user` WHERE `id` = ?] - `9`1 <nil>
  • 1
  • 2
  • 1
  • 2

2.3、数据更新

更新Id等于8的用户名为koome_new。

func update(){    orm.Debug = true;    o := orm.NewOrm()    o.Using("default") // 默认使用 default,你可以指定为其他数据库    user := User{Id : 8,Name: "koome_new"}    fmt.Println(o.Update(&user))}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

运行结果

[ORM]2017/02/14 17:49:32  -[Queries/default] - [  OK /     db.Exec /    31.6ms] - [UPDATE `user` SET `age` = ?, `name` = ? WHERE `id` = ?] - `0`, `koome_new`, `8`1 <nil>
  • 1
  • 2
  • 1
  • 2

2.4、数据查询

执行查询SELECT age, id, name FROM user WHERE enabled = 1

func query(){    var j,i int64    orm.Debug = true;    o := orm.NewOrm()    o.Using("default") // 默认使用 default,你可以指定为其他数据库    var users [] User    num,err := o.Raw("SELECT age, id, name FROM user WHERE enabled = ?",1).QueryRows(&users)    fmt.Println(users)    if err == nil {        fmt.Println("user nums: ", num)    }    i = num    for j = 0; j < i; j++ {        fmt.Printf("Element[%d] = %d\n", j, users[j].Name )    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

运行结果

[ORM]2017/02/14 17:51:02  -[Queries/default] - [  OK /    db.Query /    18.5ms] - [SELECT age, id, name FROM user WHERE enabled = ?] - `1`[{1 30 slene} {2 0 new} {4 0 jack} {7 0 loong} {8 0 koome_new} {10 0 wood}]user nums:  6Element[0] = %!d(string=slene)Element[1] = %!d(string=new)Element[2] = %!d(string=jack)Element[3] = %!d(string=loong)Element[4] = %!d(string=koome_new)Element[5] = %!d(string=wood)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

当前数据库数据 
这里写图片描述

3、Q&A

1. must have one register DataBase alias named default 
2. sql: expected 3 destination arguments in Scan, not 1

原创粉丝点击