mybatis 自定义typehandler,转换特定字段
2017-07-05 08:55
483 查看
自定义typehandler心得。
这里采用extends BaseTypeHandler 的方法自定义(也可以实现TypeHandler接口)。
使用:
在mybatis-config.xml中或者mybatis的javaconfig配置中添加自定义的typehandler
在javaconfig中配置如下:
如是是按以上方式(自定义typehandler中不注释@MappedJdbcTypes(JdbcType.VARCHAR)),因为typehandler是责任链模式,所以会覆盖所有的符合类型(如上例中的JdbcType.VARCHAR)。
重点:
如果要指定某些字段而不是所有符合类型的字段使用自定义的typehandler的话,可以这么干:
第一种方法:自定义的typehandler不设置@MappedJdbcTypes注解,使用都是如上图中的xml中使用方法。
第二种方法:可设置@MappedJdbcTypes注解,但是不在mybatis-config.xml中或者mybatis的javaconfig配置中添加自定义typehandler。
第三种方法:去掉如column=”mobile”的jdbcType。不推荐。
暂时只想到这三种方法。
这里采用extends BaseTypeHandler 的方法自定义(也可以实现TypeHandler接口)。
package com.burt.dal.typehandler; import java.sql.CallableStatement; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import org.apache.ibatis.type.BaseTypeHandler; import org.apache.ibatis.type.JdbcType; import org.apache.ibatis.type.MappedJdbcTypes; //@MappedJdbcTypes(JdbcType.VARCHAR) public class TestTypeHandler extends BaseTypeHandler<String>{ public void setNonNullParameter(PreparedStatement preparedStatement, int i, String s, JdbcType jdbcType) throws SQLException { } public String getNullableResult(ResultSet resultSet, String s) throws SQLException { String name = resultSet.getString(s); return name.replace(name.substring(1,2),"*"); } public String getNullableResult(ResultSet resultSet, int i) throws SQLException { String name = resultSet.getString(i); return name.replace(name.substring(1,2),"*"); } public String getNullableResult(CallableStatement callableStatement, int i) throws SQLException { String name = callableStatement.getString(i); return name.replace(name.substring(1,2),"*"); } }
使用:
在mybatis-config.xml中或者mybatis的javaconfig配置中添加自定义的typehandler
在javaconfig中配置如下:
如是是按以上方式(自定义typehandler中不注释@MappedJdbcTypes(JdbcType.VARCHAR)),因为typehandler是责任链模式,所以会覆盖所有的符合类型(如上例中的JdbcType.VARCHAR)。
重点:
如果要指定某些字段而不是所有符合类型的字段使用自定义的typehandler的话,可以这么干:
第一种方法:自定义的typehandler不设置@MappedJdbcTypes注解,使用都是如上图中的xml中使用方法。
第二种方法:可设置@MappedJdbcTypes注解,但是不在mybatis-config.xml中或者mybatis的javaconfig配置中添加自定义typehandler。
第三种方法:去掉如column=”mobile”的jdbcType。不推荐。
暂时只想到这三种方法。
相关文章推荐
- Mybatis实战之自定义TypeHandler处理枚举
- 14、自定义TypeHandler之String转换为list
- mybatis自定义typeHandler
- mybatis自定义typeHandler
- Mybatis实战之自定义TypeHandler处理枚举
- mybatis自定义typeHandler
- mybatis自定义typeHandler
- Mybatis实现自定义的类型转换器TypeHandler
- mybatis自定义类型处理器-TypehHandler
- Spring整合MyBatis后引入自定义类型转化器TypeHandler
- mybatis自定义typeHandler
- mybatis-枚举类型的typeHandler&自定义枚举类型typeHandler
- mybatis自定义typeHandler
- mybatis typeHandler自定义类型转换器
- Mybatis学习之自定义typehandler(四)
- mybatis实现自定义typeHandler
- mybatis自定义typeHandler
- SpringBoot Mybatis EnumTypeHandler自定义统一处理器
- mybatis自定义typeHandler
- mybatis自定义typeHandler