springboot中mybatis定義型別轉換器
阿新 • • 發佈:2019-01-23
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: ...