Skip to content

Latest commit

 

History

History
69 lines (43 loc) · 1.82 KB

README.md

File metadata and controls

69 lines (43 loc) · 1.82 KB

gorm-dameng

达梦8、达梦接入 gorm

使用方法
引入:

	"github.com/zishiguo/gorm-dameng/customdbtype"
	"github.com/zishiguo/gorm-dameng/dameng"

比如有个表TABLE1

CREATE TABLE "DW"."TABLE1"
(
"ID" INT IDENTITY(1, 1) NOT NULL,
"TITLE" VARCHAR2(50),
"CONTENT" CLOB,
NOT CLUSTER PRIMARY KEY("ID")) STORAGE(ON "MAIN", CLUSTERBTR) ;

数据库中的Clob类型在结构体中用 customdbtype.MyClob 表示而不能用 string,否则会抛异常。

type MemberInfo struct {
	Id      string                `gorm:"column:ID"`
	Title   string                `gorm:"column:TITLE"`
	Content customdbtype.MyClob   `gorm:"column:CONTENT"`
}

注意大小写问题

  • 经测试,查询时,要查询的字段名与结构体MemberInfo中column后面定义的字段名或与变量名大小写保持一致,否则取不到值。oracle则不存在这个问题。
    var memberInfo MemberInfo

    //正确。与变量名大小写保持一致
	err = GORM_DB.Raw("select Id,Title,Content from dw.table1 t where id=1 ").Scan(&memberInfo).Error

    //正确。与gorm:"column:字段名"中的字段名大小写保持一致
    err = GORM_DB.Raw("select ID,TITLE,CONTENT from dw.table1 t where id=1 ").Scan(&memberInfo).Error
    //where后面的字段,如id又可以不用保持大小写一致

    //错误。没有与变量名或与gorm:"column:字段名"中的大小写保持一致
	err = GORM_DB.Raw("select id,titlE,ContenT from dw.table1 t where id=1 ").Scan(&memberInfo).Error
  • 插入、更新时字段不分大小写
	err = GORM_DB.Exec("insert into  dw.table1(tiTle,conTENt)values('标题3','内容3') ").Error
	err = GORM_DB.Exec("update  dw.table1 set tiTLE='标题333',content='内容333' where id=3").Error

更多,参考demo.go