Mybatis_review之配置文件中的typeHandlers节点内容说明
来源:互联网 发布:手机淘宝怎么提前收款 编辑:程序博客网 时间:2024/05/29 17:07
Mybatis为什么要在configuration file中提供typeHandlers节点
因为java类型与数据库中保存的类型是有很大差异的,例如 在java中的类型为int,但是在数据库中可能为int也可能为number。因此建立数据库的类型映射是非常重要的。为了兼容多个数据库,以及考虑到未来数据库的发展,Mybatis采用了插入的方式来解决类型映射的问题。
我们可以在mybatis的文件夹org.apache.ibatis.type的下面看到很多中typeHandler。与其他的框架中的实现方式一样,他们都有两种实现方式,第一种就是实现某一个接口,另外一个是继承某一个抽象类。
在Mybatis的官方文档中,也提到了typeHandler节点,这个节点位于配置文件中,可以用来指定Mybatis在插入某类型参数以及从结果集中取出该类型的参数的默认动作,我们可以用这个特性来做很多事情,例如,我们在数据库中存储了男 =0 女=0 性别未知=9,但是在查询的时候,需要将上面的码值转码,现有的系统情况不允许我们修改前台逻辑与SQL逻辑,这个时候,了解Mybatis的该特性确实还是能够帮助我们一个大忙的,尽管这个时候,未必是最好的解决方案。
如何扩展Mybatis的typeHandler
扩展Mybatis的typeHandler是非常简单的,可以实现特定接口,也可以继承特定的抽象类,然后实现他们的抽象方法。实现接口的代码如下:
<span style="font-family:KaiTi_GB2312;">package com.samsung.mybatis;import java.sql.CallableStatement;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import org.apache.ibatis.type.JdbcType;import org.apache.ibatis.type.TypeHandler;public class ZwIntegerTypeHandler implements TypeHandler<Integer>{ @Override public void setParameter(PreparedStatement ps, int i, Integer parameter, JdbcType jdbcType) throws SQLException { ps.setInt(i, parameter); } @Override public Integer getResult(ResultSet rs, String columnName) throws SQLException { return Integer.valueOf(rs.getString(columnName)); } @Override public Integer getResult(ResultSet rs, int columnIndex) throws SQLException { return Integer.valueOf(rs.getString(columnIndex)); } @Override public Integer getResult(CallableStatement cs, int columnIndex) throws SQLException { return Integer.valueOf(cs.getString(columnIndex)); }}</span>
然后在配置文件中,添加一个节点。这里面也支持两种方式,第一种是注解来扫描的方式,另外一种,则是通过指定类的方式。使用第二种方式的代码如下:
<span style="font-family:KaiTi_GB2312;"><typeHandlers> <typeHandler handler="com.samsung.mybatis.ZwIntegerTypeHandler" javaType="Integer"/></typeHandlers></span>
0 0
- Mybatis_review之配置文件中的typeHandlers节点内容说明
- Mybatis_review之配置文件中的properties节点内容说明
- Mybatis_review之配置文件中的typeAliases节点内容说明
- Mybatis_review之配置文件中的objectFactory节点内容说明
- Mybatis_review之配置文件中的properties节点内容说明
- Mybatis之配置文件中的objectFactory节点内容说明
- Mybatis之XML配置文件之properties,settings,typeAliases,typeHandlers
- mybatis中的typeHandlers
- web.config 配置文件节点说明
- 读取配置文件的节点内容
- 读取配置文件的节点内容
- typehandlers
- web.config详解(配置文件节点说明)
- web.config详解(配置文件节点说明)
- Android 配置文件 manifest 子节点属性说明
- 按节点读取出properties配置文件内容
- Mybatis配置之<typeHandlers>元素详述
- mybatis-全局配置文件-mybatis-config.xml- typeHandlers-6
- C# Socket异步通讯实现详解
- Cesium WebGL 调试环境配置
- LeetCode-Construct Binary Tree from Inorder and Postorder Traversal
- 汽车VIN号所标示的意义是什么
- Ajax:
- Mybatis_review之配置文件中的typeHandlers节点内容说明
- 网络流—最大流(Edmond-Karp算法)
- 再遇MySQL 启动 1067 错误。
- hdu 1548 A strange lift
- Scala新手指南中文版 - 第一篇 Extractors(提取器)
- Scala新手指南中文版 - 第二篇 Extracting Sequences(提取有序类型)
- Spring Bean的生命周期
- Scala新手指南中文版 - 第三篇 Patterns Everywhere(模式无处不在)
- Scala新手指南中文版 - 第四篇 Pattern Matching Anonymous Functions(模式匹配匿名函数)