Beego Mysql URCD操作

在MySQL中创建数据库

mysql -uroot -p123456

create database 02blog default character set utf8;

数据库驱动注册等信息

项目的路径是:/home/lee/Applications/Go/src/blog/02blog/

在models下,建立db.go文件

package models

import(
        "blog/02blog/models/class" // 注册模型,需要引入该包
        "github.com/astaxie/beego/orm"
        _ "github.com/go-sql-driver/mysql"
)

/*
使用orm连接数据库步骤:
//告诉orm使用哪一种数据库
1.注册数据库驱动RegisterDriver(driverName, DriverType) 
2.注册数据库RegisterDataBase(aliasName, driverName, dataSource, params ...)
3.注册对象模型RegisterModel(models ...)
4.开启同步RunSyncdb(name string, force bool, verbose bool)
*/

// 在init函数中连接数据库,当导入该包的时候便执行此函数
func init(){
        orm.RegisterDriver("mysql", orm.DRMySQL)
        orm.RegisterDataBase("default", "mysql", "root:123456@tcp(localhost:3306)/02blog?charset=utf8")
        orm.RegisterModel(new(class.User)) // 注册模型,建立User类型对象,注册模型时,需要引入包
        orm.RunSyncdb("default", false, true)
}

使用ORM实现基本的增删查改操作

在models文件夹新建文件夹class,在class文件夹下新建user.go文件

package class

import(
        "fmt"
        "github.com/astaxie/beego/orm"
)

// 完成User类型定义
type User struct{
        Id int `orm:"pk"` // 设置为主键,字段Id, Password首字母必须大写
        Password string
}

func TestORM(){
        o:=orm.NewOrm()
        u:=User{1, "abc"}
        o.Insert(&u) // 插入数据库

        u1:=User{Id:1}
        o.Read(&u1) // 读取
        fmt.Println(u1) // 输出

        u1.Password = "xyz" // 修改
        o.Update(&u1) // 更新

        u2:=User{Id:1}
        o.Read(&u2)
        fmt.Println(u2)

        // o.Delete(&u2)
        // o.Read(&2)
}

更改项目main.go文件

package main

import (
        _ "blog/02blog/models" // 导入models包,执行其中init函数,短横线表示只执行init,不可引用其他函数
        _ "blog/02blog/routers"
        "blog/02blog/models/class" // 导入models的class包,执行其中的class.TestORM()函数
        "github.com/astaxie/beego"
)

func main() {
        class.TestORM() // 执行class.TestORM()函数
        beego.Run()
}

orm自动修改表结构

完成上面操作之后,便可以对数据库进行简单增删改查的操作

orm提供了自动修改表结构的功能。

在user.go文件中User类型,添加一个字段,在数据库则会相应的增加一个字段

当减少一个字段时,并不会减少相应字段

 

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部