xorm使用

xorm使用

在d:\goxorm新建俩个文件

config

1
2
3
lang=go
genJson=1
prefix=cos_

 struct.go.tpl 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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需要的结构体(也可以手动,如果数据表多,最好还是自动生成)

1
2
3
4
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 @   delphi中间件  阅读(253)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2020-09-14 mormot2 tbsonwriter
2018-09-14 使用stream(流)实现多表数据传输
2018-09-14 firedac引擎DATASNAP多表查询和多表提交
2017-09-14 ini配置文件在LINUX下面程序打不开?
2017-09-14 咏南LINUX中间件
2016-09-14 大数据分包算法
点击右上角即可分享
微信分享提示