go 语言 beego框架 连接mysq 使用orm包做一些 增删改查 json 返回
beego框架开发模式下连接mysq 使用orm包做一些 增删改查 json 返回
在conf目录下app.conf 配置路由
#----------------------------------
#系统配置
#----------------------------------
appname = test6
httpport = 8080
runmode = dev
#----------------------------------
#开发模式
#----------------------------------
[dev]
mysqlhost = "127.0.0.1"
mysqluser = "root"
mysqlpass = "root"
mysqlchar = "utf8mb4"
mysqlport = "3306"
mysqlname = "1804"
#----------------------------------
#测试模式
#----------------------------------
[test]
mysqlhost = "127.0.0.1"
mysqluser = "root"
mysqlpass = "root"
mysqlchar = "utf8mb4"
mysqlport = "3306"
mysqlname = "1804"
#----------------------------------
#出厂模式
#----------------------------------
[prod]
mysqlhost = "127.0.0.1"
mysqluser = "root"
mysqlpass = "root"
mysqlchar = "utf8mb4"
mysqlport = "3306"
mysqlname = "1804"
在main入口文件中调用mysql 需要在控制器中先调用模型层包 或者匿名在main文件中调用mysql
package main
import (
"github.com/astaxie/beego/orm"
_"github.com/go-sql-driver/mysql"
_ "test6/routers"
"github.com/astaxie/beego"
)
func init() {
mysqlhost :=beego.AppConfig.String("mysqlhost")
mysqluser :=beego.AppConfig.String("mysqluser")
mysqlpass :=beego.AppConfig.String("mysqlpass")
mysqlport :=beego.AppConfig.String("mysqlport")
mysqlname :=beego.AppConfig.String("mysqlname")
mysqlchar :=beego.AppConfig.String("mysqlchar")
conn := mysqluser + ":" + mysqlpass + "@tcp(" + mysqlhost + ":" + mysqlport + ")/" + mysqlname+"?parseTime=true&loc=Local&charset=" +mysqlchar
orm.RegisterDataBase("default","mysql",conn)
orm.RunSyncdb("default",false,true)
}
func main() {
beego.Run()
}
模型层代码
package models
import "github.com/astaxie/beego/orm"
type Books struct {
Id int `orm:"column(id);size(50) auto" description:"id"`
Name string `orm:"column(name);size(50)" description:"名称"`
Author string `orm:"column(author);size(50)" description:"作者"`
}
func init() {
orm.RegisterModel(new(Books))
}
func (b *Books)TableName() string {
return "books"
}
控制器代码
package controllers
import (
"booktest/models"
"github.com/astaxie/beego"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/orm"
)
type BookController struct {
beego.Controller
}
//图书添加功能:路由配置/add 使用post请求控制器中AddBook方法
func (b *BookController)AddBook( ) {
o := orm.NewOrm()
var user models.Book
user.Nmae=b.GetString("name")
user.Author=b.GetString("author")
_,err:=o.Insert(&user)
var serve =make(map[string]interface{})
defer b.ServeJSON()
if err != nil {
serve["code"]="1"
serve["mssage"]="添加失败"
}else {
serve["code"]="0"
serve["mssage"]="添加成功"
}
b.Data["json"]=serve
//开启日志调试,将用户提交的参数通过logs.debug()打印到控制台
logs.Debug(serve)
}
//图书列表查询:路由配置/list使用get方式请求控制器中SearchBook方法
func (b *BookController) SearchBook() {
o := orm.NewOrm()
var user []models.Book
_,err:=o.QueryTable("book").OrderBy("-id").All(&user)
var serve =make(map[string]interface{})
if err != nil {
serve["code"]="1"
serve["mssage"]="查询失败"
}else {
serve["code"]="0"
serve["mssage"]="查询成功"
serve["data"]=user
}
b.Data["json"]=&serve
defer b.ServeJSON()
//开启日志调试,将用户提交的参数通过logs.debug()打印到控制台
logs.Debug(serve)
}
//图书编辑功能:路由配置/edit使用put方式请求控制器EditBook方法
func (b *BookController)EditBook() {
o := orm.NewOrm()
var user models.Book
id,_:=b.GetInt("id")
user.Id=id
var serve =make(map[string]interface{})
defer b.ServeJSON()
if err:=o.Read(&user); err != nil {
serve["code"]="1"
serve["mssage"]="修改失败"
}else {
user.Nmae=b.GetString("name")
user.Author=b.GetString("author")
_,err:=o.Update(&user)
if err != nil {
serve["code"]="1"
serve["mssage"]="修改失败"
}else {
serve["code"]="0"
serve["mssage"]="修改成功"
}
}
b.Data["json"]=serve
//开启日志调试,将用户提交的参数通过logs.debug()打印到控制台
logs.Debug(serve)
}
//图书删除:路由配置/del使用delete方式请求控制器的DelBook方法
func (b *BookController)DelBook() {
o := orm.NewOrm()
var user models.Book
id,_:=b.GetInt("id")
user.Id=id
_,err:=o.Delete(&user)
var serve =make(map[string]interface{})
defer b.ServeJSON()
if err != nil {
serve["code"]="1"
serve["mssage"]="修改失败"
}else {
serve["code"]="0"
serve["mssage"]="修改成功"
}
b.Data["json"]=serve
//开启日志调试,将用户提交的参数通过logs.debug()打印到控制台
logs.Debug(serve)
}
路由配置
func init() {
beego.Router("/", &controllers.MainController{})
beego.Router("/add",&controllers.BookController{},"post:AddBook")
beego.Router("/list",&controllers.BookController{},"get:SearchBook")
beego.Router("/edit",&controllers.BookController{},"put:EditBook")
beego.Router("/del",&controllers.BookController{},"delete:DelBook")
}

浙公网安备 33010602011771号