Mybatis自定義類型轉換器的使用技巧
一般情況下,mybatis自帶的類型轉換器已經(jīng)足夠用了,但是需求永無止境,自定義類型轉換器還是學一下吧,指不定哪天會用上。
舉個沒啥用的示例
javabean如下:
public class User { private Integer id; private Message message; } public class Message { private Integer id; private String address; private String job; }
數(shù)據(jù)庫User表如下:
列名 | 類型 |
---|---|
id | int |
message | varchar |
Message對象在java中是一個bean,而在數(shù)據(jù)庫中是一個字符串,這中間需要類型轉換一下,所以我的目的是:
通過自定義類型轉換器,在存數(shù)據(jù)得到時候自動將message對象轉化為字符串類型,存入數(shù)據(jù)庫中。在取數(shù)據(jù)的時候,則自動將字符串轉化為Message對象封裝進結果集。
類型轉換器:
@MappedTypes(Message.class) @MappedJdbcTypes(JdbcType.VARCHAR) public class MessageTypeHandler implements TypeHandler<Message> { @Override public void setParameter(PreparedStatement ps, int i, Message parameter, JdbcType jdbcType) throws SQLException { ps.setString(i, JSON.toJSONString(parameter)); } @Override public Message getResult(ResultSet rs, String columnName) throws SQLException { return JSON.parseObject(rs.getString(columnName),Message.class); } @Override public Message getResult(ResultSet rs, int columnIndex) throws SQLException { return JSON.parseObject(rs.getString(columnIndex),Message.class); } @Override public Message getResult(CallableStatement cs, int columnIndex) throws SQLException { return null; } }
在mybatis配置文件中添加如下配置:
<typeHandlers> <typeHandler handler="org.mybatis.***.MessageTypeHandler"/> </typeHandlers>
這樣我們就可以直接編寫sql而不用手動去處理類型轉換的事情了。
<insert id="insertUser"> insert into user (id,message) values (#{id},#{message}) </insert> <select id="getUser" parameterType="int" resultType="org.mybatis.***.mapper.User" > select id,message from user where id = #{id} </select>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
springboot集成@DS注解實現(xiàn)數(shù)據(jù)源切換的方法示例
本文主要介紹了springboot集成@DS注解實現(xiàn)數(shù)據(jù)源切換的方法示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03Spring Boot日志收集及鏈路追蹤實現(xiàn)示例
這篇文章主要為大家介紹了Spring Boot日志收集及鏈路追蹤實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12java后臺發(fā)起get請求獲取響應數(shù)據(jù)
這篇文章主要為大家詳細介紹了java后臺發(fā)起get請求獲取響應數(shù)據(jù),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-08-08詳解JDK 5 Annotation 注解之@Target的用法介紹
這篇文章主要介紹了詳解JDK 5 Annotation 注解之@Target的用法介紹,需要的朋友可以參考下2016-02-02SpringBoot整合Mybatis Generator自動生成代碼
SpringBoot 整合 Mybatis Generator自動生成dao、entity、mapper.xml實現(xiàn)單表增刪改查。文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-08-08