• Go XORM


    xorm

    xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便。

    电子书 XORM操作指南

    常用命令

    xorm 是一组数据库操作命令的工具,包含如下命令:

    reverse 反转一个数据库结构,生成代码
    shell 通用的数据库操作客户端,可对数据库结构和数据操作
    dump Dump数据库中所有结构和数据到标准输出
    source 从标注输入中执行SQL文件
    driver 列出所有支持的数据库驱动
    

    编译xorm工具

    下载数据库驱动

      go get github.com/go-sql-driver/mysql  //MyMysql
      go get github.com/ziutek/mymysql/godrv  //MyMysql
      go get github.com/lib/pq  //Postgres
      go get github.com/mattn/go-sqlite3  //SQLite
    
    go get github.com/go-xorm/cmd/xorm
    

    到GOPATHsrcgithub.comgo-xormcmdxorm 目录下,执行

    go build

    当前目录产生xorm文件,window下产生xorm.exe文件

    生成struct

    database        command
    sqlite          xorm reverse sqite3 test.db templates/goxorm C:	emp
    mysql           xorm reverse mysql "root:123456@(127.0.0.1:3306)/test?charset=utf8" templates/goxorm C:	emp
    mymysql         xorm reverse mymysql xorm_test2/root/ templates/goxorm C:	emp
    postgres        xorm reverse postgres "user=postgres password=123456 dbname=test host=127.0.0.1 port=5432 sslmode=disable" templates/goxorm C:	emp
    mssql           xorm reverse mssql "server=127.0.0.1;user id=testid;password=testpwd;database=testdb" templates/goxorm C:	emp
    

    ./xorm reverse mysql root:password@$"@"(host:3306)"/database?charset=utf8 templates/goxorm
    目录参数省略,会在当前目录建立一个 models 目录, 该目录有生成的go文件

    内容如:

    package model
    
    import (
    	"time"
    )
    
    type ClickData struct {
    	Id         int       `xorm:"not null pk autoincr comment('主键') INT(10)"`
    	Adid       string    `xorm:"not null default '' comment('广告计划id') VARCHAR(32)"`
    	Cid        string    `xorm:"not null default '' comment('广告创意id') VARCHAR(100)"`
    	ImeiMd5    string    `xorm:"not null default '' comment('安卓设备识别码的md5') unique(uk_its) CHAR(32)"`
    	Mac        string    `xorm:"not null default '' comment('MAC地址的md5sum') CHAR(32)"`
    	Androidid  string    `xorm:"VARCHAR(40)"`
    	ClientIp   string    `xorm:"VARCHAR(40)"`
    	Source     string    `xorm:"not null default '' comment('媒体来源') unique(uk_its) VARCHAR(32)"`
    	Timestamp  int64     `xorm:"not null default 0 comment('点击时间') unique(uk_its) BIGINT(18)"`
    	Callback   string    `xorm:"not null default '' comment('回调参数') VARCHAR(2048)"`
    	Channel    string    `xorm:"comment('渠道唯一标示') VARCHAR(40)"`
    	ChangeFlag int       `xorm:"not null default 0 comment('渠道是否变更(0:没有变更; 1:变更过)') TINYINT(1)"`
    	OldChannel string    `xorm:"not null default '' comment('原始日志的渠道名') VARCHAR(50)"`
    	BookId     int       `xorm:"default 0 INT(11)"`
    	CreatedAt  time.Time `xorm:"not null default 'CURRENT_TIMESTAMP' comment('插入日期') DATETIME"`
    }
    
    
  • 相关阅读:
    Oracle 查询主外键关联
    maven
    LOG4J
    转换maven 项目为web 项目
    Iframe 高度自适应的问题
    JS 之CLASS类应用
    不要自己决定如何设计,遵从客户和客观需要
    私服搭建Nexus
    python经典算法题:无重复字符的最长子串
    Python输出hello world(各行命令详解)
  • 原文地址:https://www.cnblogs.com/followyou/p/12349902.html
Copyright © 2020-2023  润新知