zoukankan      html  css  js  c++  java
  • xorm使用

    xorm使用

    在d:goxorm新建俩个文件

    config

    lang=go
    genJson=1
    prefix=cos_
    

     struct.go.tpl 

    package {{.Models}}
    
    {{$ilen := len .Imports}}
    {{if gt $ilen 0}}
    import (
        {{range .Imports}}"{{.}}"{{end}}
    )
    {{end}}
    
    {{range .Tables}}
    type {{Mapper .Name}} struct {
    {{$table := .}}
    {{range .ColumnsSeq}}{{$col := $table.GetColumn .}} {{Mapper $col.Name}}    {{Type $col}} {{Tag $table $col}}
    {{end}}
    }
    
    {{end}}  

    在go终端执行以下命令

    D:>xorm reverse postgres  postgres://postgres:asdf@localhost:5432/postgres?sslmode=disable goxorm

    会在d:modals自动生成数据库所有表的XORM需要的结构体(也可以手动,如果数据表多,最好还是自动生成)

    type Tunit struct {
    	Unitid   string `json:"unitid" xorm:"not null pk VARCHAR(9)"`
    	Unitname string `json:"unitname" xorm:"VARCHAR(9)"`
    }
    

     测试程序 

    package main
    
    import (
        "fmt"
    
        _ "github.com/lib/pq"
        "xorm.io/xorm"
    )
    
    type Tunit struct {
        Unitid   string `json:"unitid" xorm:"not null pk VARCHAR(9)"`
        Unitname string `json:"unitname" xorm:"VARCHAR(9)"`
    }
    
    func main() {
        db, err := xorm.NewEngine("postgres", "postgres://postgres:asdf@localhost:5432/postgres?sslmode=disable")
        if err != nil {
            fmt.Println(err)
        }
        //2.显示sql语句
        //db.ShowSQL(true)
        //3.设置连接数
        db.SetMaxIdleConns(2000)
        db.SetMaxOpenConns(1000)
    
        // 查询数组,find的第二个可选参数是查询条件bean
        var s []Tunit
        db.Cols().Find(&s)
        fmt.Println(s)
    }

     测试程序2:

    package main
    
    import (
        "fmt"
    
        _ "github.com/lib/pq"
        "xorm.io/xorm"
    )
    
    type Tunit struct {
        Unitid   string `json:"unitid" xorm:"not null pk VARCHAR(9)"`
        Unitname string `json:"unitname" xorm:"VARCHAR(9)"`
    }
    
    func main() {
        master, err := xorm.NewEngine("postgres", "postgres://postgres:asdf@localhost:5432/postgres?sslmode=disable")
        if err != nil {
            return
        }
    
        slave1, err := xorm.NewEngine("postgres", "postgres://postgres:asdf@localhost:5432/postgres2?sslmode=disable")
        if err != nil {
            return
        }
    
        slaves := []*xorm.Engine{slave1}
        db, err := xorm.NewEngineGroup(master, slaves, xorm.RandomPolicy())
        db.SetMaxOpenConns(2000)
        db.SetMaxIdleConns(10)
    
        // 查询数组,find的第二个可选参数是查询条件bean
        var s []Tunit
        db.Cols().Find(&s)
        fmt.Println(s)
    }
  • 相关阅读:
    学习Swift -- 构造器(上)
    学习Swift -- 继承
    学习Swift -- 数组(Array)
    学习Swift--下标脚本
    学习Swift--方法
    学习Swift--属性
    Swift 类和结构体的简单认识
    dedecms代码研究二
    dedecms代码研究一
    PHP isset()与empty()的区别
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/15269968.html
Copyright © 2011-2022 走看看