Mybatis自定義類(lèi)型轉(zhuǎn)換器的使用技巧
一般情況下,mybatis自帶的類(lèi)型轉(zhuǎn)換器已經(jīng)足夠用了,但是需求永無(wú)止境,自定義類(lèi)型轉(zhuǎn)換器還是學(xué)一下吧,指不定哪天會(huì)用上。
舉個(gè)沒(méi)啥用的示例
javabean如下:
public class User { private Integer id; private Message message; } public class Message { private Integer id; private String address; private String job; }
數(shù)據(jù)庫(kù)User表如下:
列名 | 類(lèi)型 |
---|---|
id | int |
message | varchar |
Message對(duì)象在java中是一個(gè)bean,而在數(shù)據(jù)庫(kù)中是一個(gè)字符串,這中間需要類(lèi)型轉(zhuǎn)換一下,所以我的目的是:
通過(guò)自定義類(lèi)型轉(zhuǎn)換器,在存數(shù)據(jù)得到時(shí)候自動(dòng)將message對(duì)象轉(zhuǎn)化為字符串類(lèi)型,存入數(shù)據(jù)庫(kù)中。在取數(shù)據(jù)的時(shí)候,則自動(dòng)將字符串轉(zhuǎn)化為Message對(duì)象封裝進(jìn)結(jié)果集。
類(lèi)型轉(zhuǎn)換器:
@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>
這樣我們就可以直接編寫(xiě)sql而不用手動(dòng)去處理類(lèi)型轉(zhuǎn)換的事情了。
<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>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- mybatis自定義類(lèi)型處理器TypehHandler示例詳解
- MyBatis自定義類(lèi)型轉(zhuǎn)換器實(shí)現(xiàn)加解密
- Mybatis實(shí)現(xiàn)自定義類(lèi)型轉(zhuǎn)換器TypeHandler的方法
- Mybatis之類(lèi)型處理器TypeHandler的作用與自定義方式
- mybatis類(lèi)型處理器JSR310標(biāo)準(zhǔn)詳解
- Mybatis-Plus自定義集合類(lèi)型的類(lèi)型處理器詳解
- mybatis-plus攔截器、字段填充器、類(lèi)型處理器、表名替換、SqlInjector(聯(lián)合主鍵處理)
- Mybatis 自定義類(lèi)型處理器示例詳解
相關(guān)文章
springboot集成@DS注解實(shí)現(xiàn)數(shù)據(jù)源切換的方法示例
本文主要介紹了springboot集成@DS注解實(shí)現(xiàn)數(shù)據(jù)源切換的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Java中jar包運(yùn)行后顯示:沒(méi)有主清單屬性的解決方案
這篇文章主要介紹了Java中jar包運(yùn)行后顯示:沒(méi)有主清單屬性的解決方案,文中給大家分析了三個(gè)主要原因,并通過(guò)代碼示例和圖文講解的非常詳細(xì),需要的朋友可以參考下2024-04-04關(guān)于MD5算法原理與常用實(shí)現(xiàn)方式
這篇文章主要介紹了關(guān)于MD5算法原理與常用實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08Spring Boot日志收集及鏈路追蹤實(shí)現(xiàn)示例
這篇文章主要為大家介紹了Spring Boot日志收集及鏈路追蹤實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12java后臺(tái)發(fā)起get請(qǐng)求獲取響應(yīng)數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了java后臺(tái)發(fā)起get請(qǐng)求獲取響應(yīng)數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08詳解JDK 5 Annotation 注解之@Target的用法介紹
這篇文章主要介紹了詳解JDK 5 Annotation 注解之@Target的用法介紹,需要的朋友可以參考下2016-02-02SpringBoot整合Mybatis Generator自動(dòng)生成代碼
SpringBoot 整合 Mybatis Generator自動(dòng)生成dao、entity、mapper.xml實(shí)現(xiàn)單表增刪改查。文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-08-08