zoukankan      html  css  js  c++  java
  • Golang之类库学习-xorm

      通常讲,框架都会封装一个操作DB的orm操作类库,可以兼容多种数据库,并把底层操作常用方法统一命名,对于业务逻辑来讲不用变动,相对于原生的SQL来用,不用关注每一个错误的异常和判断。

      golang类库xorm也是其中的一种,相关学习地址:https://gobook.io/read/gitea.com/xorm/manual-en-US/chapter-01/1.engine.html

      

      学习实践:

      db:mysql 本地

      一,导入相关类库,声明engine xorm变量

      

    import (
        _ "github.com/go-sql-driver/mysql"
        "xorm.io/xorm"
    )
    
    var engine *xorm.Engine

      二,连接DB

      

    engine,err := xorm.NewEngine("mysql","root:@tcp(127.0.0.1:3306)/gotest?charset=utf8mb4&parseTime=True&loc=Local")
    if err != nil {
        log.Fatal("db connect error",err)
    }

      

      三,CURD操作

      针对DB的作品,不再一一缀述,就是提供了相对应的操作方法,及SQL的原生支持

      对table字段有一些关键字可以留意下,复用engine.sync2可以同步struct到数据库生成表结构,针对生成的表名称实验得知 UserInfo会创建为user_info表名

      type UserInfo struct {
        Id int `xorm:"pk autoincr"`  自增
        Name string
        Age int
        Ctime int `xorm:"updated"`  每次更新会修改
        Version int `xorm:"version"`     乐观锁,全局的,UPDATE表字段 会 +1 对于并发场景可以尝试使用,如果不想全局使用,可以针对某个字段建立一个类似的字段
      }

      

    PHP中常见的问题点,知识点,及盲点。
  • 相关阅读:
    PowerShell里的数组
    题解 cf gym 103261 D FFT Algorithm
    欧拉筛求积性函数的一般形式
    题解 LOJ 6053
    题解 SP34112 UDIVSUM
    题解 luogu P5162 WD与积木
    Java 关闭流同步输入输出
    题解 luogu P6620 [省选联考 2020 A 卷] 组合数问题
    hdu 6588 题解
    题解 cf gym 102979 E Expected Distance
  • 原文地址:https://www.cnblogs.com/sblack/p/13029487.html
Copyright © 2011-2022 走看看