解释Mybatis中TypeHandle怎么处理特殊数据类型? [来自qq空间]

1。Blob数据类型,对应在java类型:java.sql.Blob,用byte[]存储,正常Blob类型用于图片、等大文本文件,它是以二进制形式来存储。在Mybatis中,只提供了BlobTypeHandler,用于把数据库Blob字段映射到java中的byte[]类型,如果要映射成String,必须实现TypeHandler类。

2。Clob数据类型,对应在java类型:java.sql.Clob,用byte[]存储,正常Clob类型用于存储大量文字,而不是文件。在Mybatis中,提供了ClobStringTypeHandler,用于把数据库Clob字段映射到java中的String类型。

3。TypeHandler,是个接口,它是在返回值ResultSet时候调用resultMap这时会触发对象属于映射,源码如下:

public void setParameter(PreparedStatement ps, int i, Object parameter, JdbcType jdbcType)
      throws SQLException;       //该方法用于给对象属于赋值

  public Object getResult(ResultSet rs, String columnName)
      throws SQLException;     //通过字段名称返回值

  public Object getResult(CallableStatement cs, int columnIndex)
      throws SQLException;    //通过字符索引返回值

4。BaseTypeHandler,该类是Mybatis提供的,自定义的新类只要继承它或,实现TypeHandler都可以。

你可能感兴趣的:(mybatis,TypeHandle)