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")
}

  

 

posted @ 2020-08-21 20:42  拉斯维加斯  阅读(283)  评论(0)    收藏  举报