数据类型
最后更新:2024-09-09 19:36:35
|
状态:未完成
int,varchar等常用的数据类型在Java中有一一对应的数据类型读写之间不需要转换
而json/xml在Java中对应的数据类型是String 有些数据库在写入时不能自动兼容String需要转换
更有一些不常用的类型如blob,point,polygon等在Java中对应的是byte[]这样在Java中操作很不方便
针对这些数据类型DataRow与Entity中有特定的实现可以自动转换
而json/xml在Java中对应的数据类型是String 有些数据库在写入时不能自动兼容String需要转换
更有一些不常用的类型如blob,point,polygon等在Java中对应的是byte[]这样在Java中操作很不方便
针对这些数据类型DataRow与Entity中有特定的实现可以自动转换
如表中的point 类型 可以用Entity中的double[]类型接收,在保存时SQLAdapter会自动转换成数据库需要的类型
各数据库之间数据类型兼容及转换参考【数据类型兼容】
在创建表时常用的数据类型在每个数据库中有兼容的类型可以自动转换,
如Long
在mysql中转换成bigint
在pg中会被转换成int8
像money这种需要精度和小数位的,在mysql中只能转换成decimal但是没有精度和小数位,所以在定义Column时应该设置精度和小数位,这样在不同数据库间可以成功转换
但是在插入数据的时候,有些数据库对类型要求比较严格,如在oracle中的日期类型,如果插入String类型的数据会抛出异常,
这种情况可以打开ConfigTable.IS_AUTO_CHECK_METADATA = true;打开后在执行插入前会根据检测到数据类型格式化数据,不需要担心影响性能,类型检测是一次性的,第二次之后会有缓存
如果遇到自动转换不能满足需求的情况,可以在项目中实现类型转换,参考【 数据库读、写过程中的类型转换】