*使用Beego中的orm包操作数据库
//1、Models的设置
package models
import (
"github.com/astaxie/beego/orm"
_ "github.com/go-sql-driver/mysql"
)
type User struct {
Id int
Name string
Pwd string
}
func init(){
//设置数据库基本信息
orm.RegisterDataBase("default","mysql","root:######@tcp(127.0.0.1:3306)/test?charset=utf8")
//映射model数据
orm.RegisterModel(new(User))
//生成表
orm.RunSyncdb("default",false,true)
}
//2、设置路由
package routers
import (
"test/controllers"
"github.com/astaxie/beego"
)
func init() {
beego.Router("/", &controllers.MainController{})
}
package controllers
import (
"github.com/astaxie/beego"
"github.com/astaxie/beego/orm"
"math"
"test/models"
)
type MainController struct {
beego.Controller
}
func (c *MainController) Get() {
//一、对数据库插入数据
//1.要有orm对象
o := orm.NewOrm()
//2.有一个要插入数据的结构体对象
user := models.User{}
//3.对结构体赋值
user.Name = "1111"
user.Pwd = "2222"
//4.插入数据
_, err := o.Insert(&user)
if err != nil {
beego.Info("插入失败", err)
return
}
//二、对数据库查看操作
//1.要有orm对象
o := orm.NewOrm()
//2.查询对象
user := models.User{}
//3。指定查询对象值
//照Id查询
user.Id=1
//4.查询
err:=o.Read(&user)
//3指定查询对象值
//按照Name查询
user.Name="1111"
//4.查询
err:=o.Read(&user,"Name")
if err != nil {
beego.Info("查询失败", err)
return
}
beego.Info("查询成功",user)
//三、数据库更新操作
//1.要有orm对象
o := orm.NewOrm()
//2.需要更新的结构体对象
user := models.User{}
//3。查到需要更新的对象值
//照Id查询
user.Id=1
err:=o.Read(&user)
//4.对数据重新赋值
if err==nil{
user.Name="张三"
user.Pwd="123456"
_,err=o.Update(&user)
if err !=nil{
beego.Info("更新失败",err)
return
}
}
beego.Info("更新成功",user)
//四、删除数据库信息
//1.要有orm对象
o := orm.NewOrm()
//2.需要删除的结构体对象
user := models.User{}
//3。指定删除的对象值
//照Id查询
user.Id=3
//4.删除
_,err:=o.Delete(&user)
if err!=nil{
beego.Info("删除失败",err)
return
}
beego.Info("删除成功",user)
}