怎么获取beego查询的的结果,Students这个里面的结果为啥是初始化的?

package main

import (
    "fmt"
    _ "github.com/go-sql-driver/mysql"  //引入mysql驱动
    "github.com/astaxie/beego/orm" //对应的beego/orm库 可以通过 go get来获取到本地GOPATH路径下
    "time"
)

//与数据库学生表映射的结构体
type studentinfo struct {
    Id          int    `pk:"auto"`
    Stuname     string `orm:"size(20)"`
    Stuidentify string `orm:"size(30)"`
    Stubirth    time.Time
    Stuclass    string `orm:"size(30)"`
    Stumajor    string `orm:"size(30)"`
}
//数据库连对象需要的信息
var (
    dbuser string = "root"
    dbpwd  string = "pingan"
    dbname string = "takephoto"
)

var Students []studentinfo
//初始化orm
func init() {
    Students = make([]studentinfo, 10240)
    conn := dbuser + ":" + dbpwd + "@tcp(192.168.1.15:3306)/" + dbname + "?charset=utf8"  // 组合成连接串
    orm.RegisterModel(new(studentinfo))                             // 注册表studentinfo 如果没有会自动创建
    orm.RegisterDriver("mysql", orm.DRMySQL)                        // 注册mysql驱动
    orm.RegisterDataBase("default", "mysql", conn)                  // 设置conn中的数据库为默认使用数据库
    orm.RunSyncdb("default", false, true)                          // 后一个使用true会带上很多打印信息,数据库操作和建表操作的;第二个为true代表强制创建表
}

func main() {
    orm.Debug = true        // true 打印数据库操作日志信息
    dbObj := orm.NewOrm()   // 实例化数据库操作对象
    time := time.Now().Format("2006-01-02 15:04:05")
    sql := fmt.Sprintf("insert into studentinfo(Id,Stuname, Stuidentify, Stubirth, Stuclass, Stumajor)" +
    " values(1, 'rjx', 'xxx319928xxx', '%s', '信管1班', '信息管理与信息系统')", time)
    fmt.Println(sql)
    _, err := dbObj.Raw(sql).Exec()
    if err != nil {
        fmt.Println("插入数据至:t_studentInfo出错")
    }

    sql = fmt.Sprintf("insert into studentinfo(Id, Stuname, Stuidentify, Stubirth, Stuclass, Stumajor)"+
    " values(2, 'qcy', 'xxx319918xxx', '%s', 'XXX', 'YYYYYY')", time)
    _, err = dbObj.Raw(sql).Exec()
    if err != nil {
        fmt.Println("插入数据至:t_studentInfo出错")
    }

    //更新数据
    sql = "update studentinfo set Stuname='qcym' where Id = 2"
    _, err = dbObj.Raw(sql).Exec()
    if err != nil {
        fmt.Println("更新t_studentInfo表出错")
    }

    //通过事务方式来进行数据插入
    err = dbObj.Begin()
    sql = fmt.Sprintf("insert into studentinfo(Id, Stuname, Stuidentify, Stubirth, Stuclass, Stumajor)"+
    " values(3, 'loe', 'xxx319918xxx', '%s', 'zzzz', 'TTTT')", time)
    _, err = dbObj.Raw(sql).Exec()
    if err != nil {
        dbObj.Rollback()
        fmt.Println("插入t_studentInfo表出错,事务回滚")
    } else {
        dbObj.Commit()
        fmt.Println("插入t_studenInfo表成功,事务提交")
    }

    //查询数据库
    sql = "select Id, Stuname, Stuidentify, Stubirth, Stuclass, Stumajor from studentinfo"
    fmt.Println(sql)
    num, er := dbObj.Raw(sql).QueryRows(&Students)
    if er != nil {
        fmt.Println("查询学生信息条数出错")
    } else {
        fmt.Printf("从t_studenInfo表中共查询到记录:%d条\n", num)
        fmt.Printf("students2 is : %v\n", Students)
        for index, _ := range Students {
            fmt.Printf("第%d个学生个人信息:", index + 1)
            fmt.Printf("用户Id : %d, 姓名 : %s, 身份证号 : %s, 出生日期 : %s, 班级 : %s, 专业 : %s\n", Students[index].Id, Students[index].Stuname, Students[index].Stuidentify, Students[index].Stubirth, Students[index].Stuclass, Students[index].Stumajor)
        }
    }
}
已邀请:

astaxie - 创造、获取、分享、传播和应用Go

赞同来自: lifei6671 heshaofeng

var Students []*studentinfo

lifei6671 - PHPer

赞同来自: heshaofeng

你的代码应该高亮。难道不会markdown语法吗?

heshaofeng

赞同来自:

[{0 0001-01-01 00:00:00 +0000 UTC } {0 0001-01-01 00:00:00 +0000 UTC } {0 0001-01-01 00:00:00 +0000 UTC }]

要回复问题请先登录注册