import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.TypeHandler;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* 定义database是bit类型转换为bean为String类型
* create by freeOfFlying on 2018/7/26 0026
*/
public class SmsTypeHandler implements TypeHandler{
@Override
public void setParameter(PreparedStatement preparedStatement, int i, Object o, JdbcType jdbcType) throws SQLException {
String str=(String)o;
String value = str.equals("开启") ? "1" : "0";
preparedStatement.setString(i, value);
}
@Override
public Object getResult(ResultSet resultSet, String s) throws SQLException {
Byte aByte=resultSet.getByte(s);
String str="关闭";
if(aByte==1){
str = "开启";
}
return str;
}
@Override
public Object getResult(ResultSet resultSet, int i) throws SQLException {
Byte aByte=resultSet.getByte(i);
String str="关闭";
if(aByte==1){
str = "开启";
}
return str;
}
@Override
public Object getResult(CallableStatement callableStatement, int i) throws SQLException {
Byte aByte=callableStatement.getByte(i);
String str="关闭";
if(aByte==1){
str = "开启";
}
return str;
}
}
mapper.xml文件中
<resultMap id="userList" type="...">
...
<result property="sms" column="is_sms" javaType="java.lang.String" jdbcType="BIT" typeHandler="SmsTypeHandler"/>
</resultMap>
application.yml中
mybatis:
type-handlers-package: ...
type-aliases-package: ...