代码拉取完成,页面将自动刷新
/*
* @Author: haifengat hubert28@qq.com
* @Date: 2023-06-12 13:35:21
* @LastEditors: haifengat hubert28@qq.com
* @LastEditTime: 2023-06-20 17:01:17
* @FilePath: /zorm-dm/entity_test.go
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
package zd
import (
"fmt"
"testing"
)
type TradingDayType string
func (TradingDayType) GetDataType() string {
return "varchar(8)"
}
type Bar struct {
DateTime string `zorm:"primarykey"` // redis 标识
InstrumentID string `zorm:"primarykey;size:64"`
TradingDay TradingDayType `zorm:"index"`
Open float64
High float64
Low float64
Close float64
Volume int
OpenInterest float64
PreVol int
Ticks int // 此分钟的tick数量 >3 才会被记录和分发
Entity
}
type UserNameType string
func (UserNameType) GetDataType() string {
return "varchar(14)"
}
// char(1) 与自定义类型对应
type StatusType byte
const STst StatusType = '0'
const STnd StatusType = '1'
type Depart struct {
ID string
Name string
Count int
}
type NumberType float64
// 指定小数位数
func (NumberType) GetDataType() string {
return "Number(22,8)"
}
/*
CREATE TABLE "SYSDBA"."USERINFO"
(
"USER_NAME" VARCHAR(14) NOT NULL,
"GENDER" VARCHAR(256) NOT NULL,
"AGE" INT,
"ISACTIVE" BIT,
"PROFIT" NUMBER(22,8),
"STATUS" CHAR(1),
"ID" INT IDENTITY(1, 1) NOT NULL,
"REMARK" VARCHAR(32),
NOT CLUSTER PRIMARY KEY("USER_NAME", "GENDER")) STORAGE(ON "MAIN", CLUSTERBTR) ;
COMMENT ON COLUMN "SYSDBA"."USERINFO"."GENDER" IS '性别';
CREATE INDEX "USERINFO_USER_NAME" ON "SYSDBA"."USERINFO"("USER_NAME" ASC) STORAGE(ON "MAIN", CLUSTERBTR) ;
CREATE INDEX "USERINFO_GENDER" ON "SYSDBA"."USERINFO"("GENDER" ASC) STORAGE(ON "MAIN", CLUSTERBTR) ;
*/
type UserInfo struct {
// 主键,列名,非空,索引
UserName UserNameType `zorm:"primarykey;not null;index"`
// 主键,索引,描述
Gender string `zorm:"primarykey;index;comment:性别"`
TradingDay string
Age int
// bool -> BIT
IsActive bool
// Profit NumberType
Profit float64
// char(1)
Status StatusType
// 非空自增
ID int `zorm:"not null;autoincrement"`
// 限制长度
Remark string `zorm:"size:32"`
Entity // 实现 IEntity
}
type Employee struct {
UserInfo
Name string `zorm:"comment:333XX"` // 尝试覆盖,令userInfo.Name 配置失效
EmpleeID string `zorm:"primaryKey"`
}
func (Employee) GetPrimaryKey() []string {
return []string{"Name"}
}
func TestCreateSchema(t *testing.T) {
t.Run("创建模板", func(t *testing.T) {
err := CreateSchema(ctxTest)
fmt.Println(err)
})
}
func TestCreateUserInfo(t *testing.T) {
// err = DropTable[UserInfo](ctxTest)
// fmt.Println(err)
err := CreateSchema(ctxTest)
fmt.Println(err)
err = CreateTable[UserInfo](ctxTest)
fmt.Println(err)
}
// TestEntityCompenent 测试组合 struct
func TestEntityEmployee(t *testing.T) {
err := DropTable[Employee](ctxTest)
if err != nil {
t.Error(err)
}
err = CreateTable[Employee](ctxTest)
if err != nil {
t.Error(err)
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。