zoukankan      html  css  js  c++  java
  • 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 的数据库

  • 相关阅读:
    hdu 1214 圆桌会议(规律)
    hdu 1280 前m大的数
    hdu 2114 Calculate S(n)
    hdu 1210 Eddy's 洗牌问题
    hdu 1423 Greatest Common Increasing Subsequence(最长公共递增子序列lcis)
    7.30前端之Html简介
    8.3前端之Html列表
    7.30前端之Html头部
    7.30前端之Html元素
    7.23Java之递归练习
  • 原文地址:https://www.cnblogs.com/yangmingxianshen/p/10125593.html
Copyright © 2011-2022 走看看