beego 使用orm链接以及创建mysql数据库
1.0 这方面的资料在网站上确实很少
2.0 在用bee工具创建一个go项目后,接下来我们有2件事要做了,当然之前一只觉得GO的IDE实在不知道选着那个,因为在Mac电脑上开发,又不支持文件创建所以有点麻烦
最终还是确定用sublime来开发。sublime本身集合了命令行插件这样开发起来就不用在几个命令行窗口跳转
3.0 安装好sublime后用快捷键进入sublime pagecontrol 或按shift+command+p 打开 输入GOSUBLIME:rungocommand 这样就可以Mac 命令创建文件 在这个平台上快速创建了
[ `ls` | done: 130.738533ms ] app conf controllers main.go models routers static tests views [ `cd views` | done ] [ /website/apple/apps/src/app/ ] # [ `ls` | done: 207.172909ms ] category.html index.html index.tpl [ `open index.html` | done: 380.637835ms ] [ `open -e index.html` | done: 526.056184ms ] [ `open -a index.html` | done: 1.356006514s ] Unable to find application named 'index.html' exit status 1 [ `sublime index.html` | done: 142.359053ms ] /bin/bash: sublime: command not found exit status 127 [ `ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/local/bin/sublime` | done: 205.678885ms ] [ `sublime index.html` | done: 361.883007ms ] [ /website/apple/apps/src/app/views/ ] #
3.0 好了,开始说beego 使用orm链接以及创建mysql数据库
3.1 直接上代码分3个文件mode.go,main.go,home.go这样做是为了实现业务分离 ,先来home.go是mvc中controller
package controllers import ( "github.com/astaxie/beego" ) type MainController struct { beego.Controller } func (this *MainController) Get() { //定义首页模板 this.TplNames = "index.html" }
3.2 mode.go 主要是负责数据库处理(mvc中的mode层)
package models import ( "github.com/astaxie/beego/orm" "time" ) type Store struct { Id int64 Title string Created time.Time `orm:"index"` Views int64 `orm:"index"` TopicTime time.Time `orm:"index"` TopicCount int64 TopicLastUserId int64 } type Customer struct { Id int64 Uid int64 Title string Content string `orm:"size(5000)"` Attachment string Created time.Time `orm:"index"` Updated time.Time `orm:"index"` Views int64 `orm:"index"` Author string ReplyTime time.Time `orm:"index"` ReplyCount int64 ReplyLastUserId int64 } func RegisterDB() { //注册 model orm.RegisterModel(new(Store), new(Customer)) //注册驱动 orm.RegisterDriver("mysql", orm.DR_MySQL) //注册默认数据库 orm.RegisterDataBase("default", "mysql", "root:@/app?charset=utf8")//密码为空格式 }
3.3 再一个就是main.go 负责在运行时连接数据库根据模型创建数据库表
package main import ( "app/models" _ "app/routers" "github.com/astaxie/beego" "github.com/astaxie/beego/orm" _"github.com/go-sql-driver/mysql" ) //引入数据模型 func init() { // 注册数据库 models.RegisterDB() } func main() { // 开启 ORM 调试模式 orm.Debug = true // 自动建表 orm.RunSyncdb("default", false, true) // 运行时 beego.Run() }
3.4 吐槽一下,感觉go的学习资料真的很少,成系统的项目学习资料就更少了,什么时候支持安卓啊!