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)
}

 

posted @ 2021-09-14 22:22  delphi中间件  阅读(231)  评论(0编辑  收藏  举报