亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Mybatis自定義類型轉(zhuǎn)換器的使用技巧

 更新時(shí)間:2019年04月17日 09:16:36   作者:吾乃上將軍邢道榮  
這篇文章主要介紹了Mybatis自定義類型轉(zhuǎn)換器的使用技巧,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一般情況下,mybatis自帶的類型轉(zhuǎn)換器已經(jīng)足夠用了,但是需求永無止境,自定義類型轉(zhuǎn)換器還是學(xué)一下吧,指不定哪天會(huì)用上。

舉個(gè)沒啥用的示例

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對(duì)象在java中是一個(gè)bean,而在數(shù)據(jù)庫中是一個(gè)字符串,這中間需要類型轉(zhuǎn)換一下,所以我的目的是:

通過自定義類型轉(zhuǎn)換器,在存數(shù)據(jù)得到時(shí)候自動(dòng)將message對(duì)象轉(zhuǎn)化為字符串類型,存入數(shù)據(jù)庫中。在取數(shù)據(jù)的時(shí)候,則自動(dòng)將字符串轉(zhuǎn)化為Message對(duì)象封裝進(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而不用手動(dòng)去處理類型轉(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>

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論