beego——事务处理和命令模式

1.事务处理

ORM 可以简单的进行事务操作。

1
2
3
4
5
6
7
8
9
10
11
o := NewOrm()
err := o.Begin()
// 事务处理过程
...
...
// 此过程中的所有使用 o Ormer 对象的查询都在事务处理范围内
if SomeError {
    err = o.Rollback()
} else {
    err = o.Commit()
}

 

2.命令模式

注册模型与数据库以后,调用 RunCommand 执行 orm 命令。

1
2
3
4
5
6
func main() {
    // orm.RegisterModel...
    // orm.RegisterDataBase...
    ...
    orm.RunCommand()
}
1
2
3
4
go build main.go
./main orm
# 直接执行可以显示帮助
# 如果你的程序可以支持的话,直接运行 go run main.go orm 也是一样的效果

  

自动建表

1
2
3
4
5
./main orm syncdb -h
Usage of orm command: syncdb:
  -db="default": DataBase alias name
  -force=false: drop tables before create
  -v=false: verbose info

使用 -force=1 可以 drop table 后再建表

使用 -v 可以查看执行的 sql 语句

 

在程序中直接调用自动建表:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 数据库别名
name := "default"
 
// drop table 后再建表
force := true
 
// 打印执行过程
verbose := true
 
// 遇到错误立即返回
err := orm.RunSyncdb(name, force, verbose)
if err != nil {
    fmt.Println(err)
}

自动建表功能在非 force 模式下,是会自动创建新增加的字段的。也会创建新增加的索引。

对于改动过的旧字段,旧索引,需要用户自行进行处理。

打印建表SQL

1
2
3
./main orm sqlall -h
Usage of orm command: syncdb:
  -db="default": DataBase alias name

默认使用别名为 default 的数据库

 

posted @   明王不动心  阅读(813)  评论(0编辑  收藏  举报
编辑推荐:
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
阅读排行:
· Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到
· 语音处理 开源项目 EchoSharp
· 《HelloGitHub》第 106 期
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 使用 Dify + LLM 构建精确任务处理应用
历史上的今天:
2017-12-16 API的理解和使用——哈希类型的命令
2017-12-16 API的理解和使用——字符串的命令
2017-12-16 API的理解和使用——全局命令
点击右上角即可分享
微信分享提示