-
Notifications
You must be signed in to change notification settings - Fork 21
ActiveRecord中的数据类型映射
shuzheng edited this page Aug 13, 2015
·
1 revision
etmvc中的ActiveRecord将数据表中的字段映射成模型类的字段,相应的将数据表中的字段类型映射成模型类的字段类型。
在多数情况下,ActiveRecord能够自动处理从JDBC类型到Java Object类型的映射,此种映射如下表所示:
JDBC 类型 | Java Object 类型 |
---|---|
CHAR | String |
VARCHAR | String |
LONGVARCHAR | String |
NUMERIC | java.math.BigDecimal |
DECIMAL | java.math.BigDecimal |
BIT | Boolean |
TINYINT | Integer |
SMALLINT | Integer |
INTEGER | Integer |
BIGINT | Long |
REAL | Float |
FLOAT | Double |
DOUBLE | Double |
BINARY | byte.md |
VARBINARY | byte.md |
LONGVARBINARY | byte.md |
DATE | java.sql.Date |
TIME | java.sql.Time |
TIMESTAMP | java.sql.Timestamp |
在类型的映射上可能存在一些需要转换的,比如在MSSQL数据库中定义了一个datetime的字段类型,而在模型类中定义了java.sql.Date类型。按照上表中的映射关系,将无法直接从datetime映射成java.sql.Date,所以需要作些转换。
我们需要为上面的这种转换编写一个转换器,转换器必须实现com.et.ar.Converter接口:
public class DateConverter implements Converter {
@Override
public Object convert(Object value) {
if (value == null) {
return null;
}
String s = value.toString().substring(0, 10); //取yyyy-mm-dd
return java.sql.Date.valueOf(s);
}
}
这个转换器将对象value转换成java.sql.Date类型的对象,在上面的转换实现中,我们仅是简单地取前十个字符串,然后调用valueOf进行转换。
最后将这个转换器进行注册登记:
static{
ConvertUtil.register(new DateConverter(), java.sql.Date.class);
}
好了,ActiveRecord在处理到需要映射成java.sql.Date类型的字段时会调用我们自定义的转换器进行处理。
使用教程
- etmvc框架介绍
- Hello,World经典示例
- 关于etmvc的配置
- 理解并使用控制器
- Action方法和控制器环境
- 关于etmvc的视图
- 扩展etmvc的视图
- 利用etmvc中的模型绑定简化Action方法的编写
- ORM-ActiveRecord基础
- 利用etmvc编写用户管理小例子
- ActiveRecord中同时访问多个数据库
- ActiveRecord中的关联
- etmvc中进行上传和下载
- etmvc和extjs结合分页例子
- etmvc的过滤器基础
- ActiveRecord中集成spring
- ActiveRecord中使用事务
- etmvc中使用环绕过滤器
- ActiveRecord中的数据类型映射
- ActiveRecord中的回调方法
- etmvc框架中的插件
- etmvc框架对URL路由的支持
- etmvc中使用环绕过滤器处理异常
- etmvc中的国际化处理
- etmvc框架集成spring