Copyright © 2022-2024 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.3·
页面加载耗时 0.00 毫秒·物理内存 61.9MB ·虚拟内存 1299.8MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
xorm 支持将一个 struct 映射为数据库中对应的一张表。
名称映射规则主要负责结构体名称到表名和结构体 field 到表字段的名称映射。由 core.IMapper 接口的实现者来管理,xorm内置了三种IMapper实现:core.SnakeMapper,core.SameMapper和core.GonicMapper。
当前SnakeMapper为默认值,如果需要改变时,在engine创建完成后使用
engine.SetMapper(core.SameMapper{})
同时需要注意的是:
engine.SetTableMapper(core.SameMapper{}) engine.SetColumnMapper(core.SnakeMapper{})
当一个结构体自动映射到数据库的表时,下面的表描述了它们是如何相互转换的:
go类型 | 值方法 | xorm类型 |
---|---|---|
implemented Conversion | Conversion.ToDB / Conversion.FromDB | Text |
int, int8, int16, int32, uint, uint8, uint16, uint32 | Int | |
int64, uint64 | BigInt | |
float32 | Float | |
float64 | Double | |
complex64, complex128 | json.Marshal / json.UnMarshal | Varchar(64) |
[]uint8 | Blob | |
array, slice, map except []uint8 | json.Marshal / json.UnMarshal | Text |
bool | 1 or 0 | Bool |
string | Varchar(255) | |
time.Time | DateTime | |
cascade struct | primary key field value | BigInt |
struct | json.Marshal / json.UnMarshal | Text |
Others | Text |
Xorm 进行名称映射时,可以指定前后缀等特性。这些映射规则包括:前缀映射,后缀映射和缓存映射。 1. 前缀映射通过 core.NewPrefixMapper(core.SnakeMapper{}, "p ...