您好,登錄后才能下訂單哦!
這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)如何在Mybatis中使用自定義類型轉(zhuǎn)換器,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
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ù)庫中是一個字符串,這中間需要類型轉(zhuǎn)換一下,所以我的目的是:
通過自定義類型轉(zhuǎn)換器,在存數(shù)據(jù)得到時候自動將message對象轉(zhuǎn)化為字符串類型,存入數(shù)據(jù)庫中。在取數(shù)據(jù)的時候,則自動將字符串轉(zhuǎn)化為Message對象封裝進(jìn)結(jié)果集。
類型轉(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>
這樣我們就可以直接編寫sql而不用手動去處理類型轉(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>
上述就是小編為大家分享的如何在Mybatis中使用自定義類型轉(zhuǎn)換器了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。