GoFrame 高级特性-类型识别
使用GoFrame ORM
查询数据时,由于字段值是一个泛型对象,返回的数据类型将会被自动识别映射到Go变量类型,作为泛型的具体值。
例如:
- 当字段类型为
int(xx)
时,查询到的字段值类型将会被识别会int
类型 - 当字段类型为
varchar(xxx)/char(xxx)/text
等类型时将会被自动识别为string
类型 - ……
以下以mysql
类型为例,介绍数据库类型与Go变量类型的自动识别映射关系:
版本可能随时迭代更新,具体可查看源码 https://github.com/gogf/gf/blob/master/database/gdb/gdb_core_structure.go
数据库类型 | Go变量类型 |
*char |
string |
*text |
string |
*binary |
bytes |
*blob |
bytes |
*int |
int |
*money |
float64 |
bit |
int |
big_int |
int64 |
float |
float64 |
double |
float64 |
decimal |
float64 |
bool |
bool |
date |
time.Time |
datetime |
time.Time |
timestamp |
time.Time |
其他 | string |
这一特性对于需要将查询结果进行编码,并通过例如JSON
方式直接返回给客户端来说将会非常友好。