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


    1.事务处理

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

    o := NewOrm()
    err := o.Begin()
    // 事务处理过程
    ...
    ...
    // 此过程中的所有使用 o Ormer 对象的查询都在事务处理范围内
    if SomeError {
        err = o.Rollback()
    } else {
        err = o.Commit()
    }
    

     

    2.命令模式

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

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

      

    自动建表

    ./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 语句

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

    // 数据库别名
    name := "default"
    
    // drop table 后再建表
    force := true
    
    // 打印执行过程
    verbose := true
    
    // 遇到错误立即返回
    err := orm.RunSyncdb(name, force, verbose)
    if err != nil {
        fmt.Println(err)
    }

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

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

    打印建表SQL

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

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

  • 相关阅读:
    angularjs 默认选中ng-repeat的一个
    AngularJs中directive的延迟加载
    AngularJS的angucomplete-alt
    Bootstrap Multiselect中文
    input[file]标签的accept=”image/*”属性响应很慢的解决办法
    全局安装cnpm
    实现鼠标悬浮内容自动撑开的过渡动画
    table表格 css样式
    IntelliJ idea 的破解
    浏览器使用谷歌搜索
  • 原文地址:https://www.cnblogs.com/yangmingxianshen/p/10125593.html
Copyright © 2020-2023  润新知