beego 创建mysql 1049,4-BeegoORM创建表

前面一篇文章学习了如何通过go的第三方框架,操纵数据库,但是这种操纵方式存在弊端,为了给程序员提供更高效的开发环境,这里引入ORM,用于操纵数据库

一.ORM-概念

1.原始第三方库操纵mysql的弊端

弊端:

因为利用go语言直接操作数据库需要编写SQL语句, 而SQL语句都是字符串, 所以没有提示, 所以容易出错

By 极客江南

2.原来程序员编写数据库操作代码

过去: 在企业开发中一般情况下都是在图形化界面工具中先写好SQL语句, 测试没有问题之后再拷贝到代码当中

现在: 在企业开发中一般情况下可以使用ORM, 如果使用ORM来操作数据库, 就可以摆脱SQL语句

我们在自己的电脑上安装Navicat for mysql软件,右键需要操纵的数据库,选择打开命令行列表,选择右边导航栏的查询选项,编写mysql语句(注意实际开发中多有关键字要大写)

INSERT INTO beegotest VALUES (null,'name')

SELECT * FROM beegotest WHERE id=1;

然后点击图形界面的运行,这里如果sql语句错误,会报错

然后在图像化界面编译通过后,再拷贝到项目文件中

3.ORM是什么

d383a244fa85

ORM.png

ORM是 对象关系映射 Object Relational Mapping

ORM可以将编程开发中的对象和数据库中的表进行映射, 可以根据对象创建表, 可以根据对象对表进行CRUD

现在市面上所有的编程语言几乎都支持ORM, 只不过是使用的框架不同而已

By 极客江南

d383a244fa85

image.png

简单的来讲,ORM就是用类代替指定数据库中的表

二.ORM-创建表

1.注册DB驱动类型

简单的来说,就是告诉系统,我要操作的数据库是什么数据库

d383a244fa85

image.png

d383a244fa85

image.png

2.获取ORM连接对象

d383a244fa85

image.png

d383a244fa85

image.png

3.注册ORM模型

d383a244fa85

image.png

d383a244fa85

image.png

4.根据注册的模型创建表

简单说就是根据orm连接模型创建表

d383a244fa85

image.png

第二个参数是说要不要强制创建该表,就是如果该表已经存在,删除之后重建,一般不建议强制删除,这是严重的错误

d383a244fa85

image.png

如果模型中的变量是小写,不会编译程数据库中的表中的字段

func init() {

// 1.注册数据库驱动类型

orm.RegisterDriver("mysql", orm.DRMySQL)

// 2.获取ORM连接对象

// 参数1 数据库的别名,用来在 ORM 中切换数据库使用

// 参数2 driverName

// 参数3 对应的链接字符串

orm.RegisterDataBase("default", "mysql", "root:root@tcp(127.0.0.1:3306)/itzb?charset=utf8")

// 3.注册ORM模型

// 注意点: 注册完模型并不会创建表

orm.RegisterModel(new(User))

// 4.根据注册的模型创建表

// 第一个参数: 数据库的别名(在哪个数据库中创建)

// 第二个参数: 是否强制更新(销毁过去的再重新创建)

// 第三个参数: 是否显示创建SQL语句

orm.RunSyncdb("default", false, true)

}

func test() {

// 1.打开数据库

db, err := sql.Open("mysql", "root:root@tcp(127.0.0.1:3306)/itzb?charset=utf8")

if err != nil {

By 极客江南

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值