Typehandler是什么 数据库String到Java模型Boolean对象的转换实现 BooleanTypeHandler.java mapper.xml User.java Typehandler是什么 Typehandler是作为在表字段映射过程中的Converter处理器。 数据库String到Java模型Boolean对象的转换实现 BooleanTypeHandler.java package com.freud.test.handler; 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 BooleanTypeHandler implements TypeHandler { @Override public Boolean getResult(CallableStatement cstat, int index) throws SQLException { String str = cstat.getString(index); try { Boolean ret = Boolean.valueOf(str); return ret; } catch (IllegalArgumentException e) { return null; } } @Override public Boolean getResult(ResultSet rs, String columnName) throws SQLException { String str = rs.getString(columnName); try { Boolean ret = Boolean.valueOf(str); return ret; } catch (IllegalArgumentException e) { return null; } } @Override public void setParameter(PreparedStatement pstmt, int index, Object value, JdbcType jdbcType) throws SQLException { Boolean boolValue = (Boolean) value; pstmt.setBoolean(index, boolValue); } } 实现org.apache.ibatis.type.TypeHandler接口,并实现其中的三个Abstract方法,两个Get方法指的是从数据库流中取出数据,一个set指的是将数据设置进数据库操作流。 mapper.xml <resultMap id="user" type="com.freud.test.beans.User"> <id property="id" jdbcType="INTEGER" column="ID" /> <result property="isEmployed" jdbcType="VARCHAR" column="IS_EMPLOYED" typeHandler="com.freud.test.handler.BooleanTypeHandler"/> </resultMap> User.java package com.freud.test.beans; public class User { private int id; private Boolean isEmployed; public int getId() { return id; } public void setId(int id) { this.id = id; } public Boolean getIsEmployed() { return isEmployed; } public void setIsEmployed(Boolean isEmployed) { this.isEmployed = isEmployed; } }