mybatis映射特殊类型时使用自定义类型处理器

使用mybstis3.5.3和数据库oracle时,无法将实体类数据类型Boolean和数据库数据类型varchar2进行映射,在这里使用自定义类型处理器TypeHandler进行类型的转换。

 1 public class BooleanVarcharTypeHandler extends BaseTypeHandler<Boolean> {
 2     /**
 3      * 查询的时候设置参数的值
 4      */
 5     @Override
 6     public void setNonNullParameter(PreparedStatement preparedStatement, int i, Boolean aBoolean, JdbcType jdbcType) throws SQLException {
 7         preparedStatement.setString(i, null == aBoolean ? "N" : aBoolean ? "Y" : "N");
 8     }
 9 
10     /**
11      * 根据列名和下标获取结果集的值
12      */
13     @Override
14     public Boolean getNullableResult(ResultSet resultSet, String s) throws SQLException {
15         String str = resultSet.getString(s);
16         return "Y".equals(str);
17     }
18 
19     @Override
20     public Boolean getNullableResult(ResultSet resultSet, int i) throws SQLException {
21         String str = resultSet.getString(i);
22         return "Y".equals(str);
23     }
24 
25     @Override
26     public Boolean getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
27         String str = callableStatement.getString(i);
28         return "Y".equals(str);
29     }
30 }

 

posted @ 2021-05-31 17:25  果冻dd  阅读(198)  评论(0)    收藏  举报