按照网上说的Spring和IBatis结合的时候要用以下配置进行Blob数据的转换处理:
<result property="content" column="cnt" typeHandler ="org.springframework.orm.ibatis.support.BlobByteArrayTypeHandler"/>
但是这样取出来的数据是乱码,后来找了IBatis自己的Handler实现,终于可以解决乱码问题了。具体方式如下:
< result property="content" column="cnt" typeHandler="com.ibatis.sqlmap.engine.type.BlobTypeHandlerCallback"/>
用 com.ibatis.sqlmap.engine.type.BlobTypeHandlerCallback代替 org.springframework.orm.ibatis.support.BlobByteArrayTypeHandler就可以了。 真不知道Spring在搞什么。
补充:
如果使用的是Oracle9的驱动,字符串只要超过了4000个字符就不能插入。使用10g的驱动,能写入32766个字符 。这个原因主要是jdbc驱动限制了String的长度的原因。