当使用mybatis查询oracle中带有LONG数据类型的时候,实体类使用的是String类型来接收.
一般会报两种错误:1.无效字段类型 2.流已被关闭
处理方法:
第一种方式:不使用LONG类型(废话)
第二种方式:自定义函数将LONG类型转换为VARCHAR类型(百度,方法一大堆,都是)
第三种方式:首先在Mapper.xml文件中自定义resultMap映射关系,将LONG类型字段的jdbcType设置为LONGVARBINARY
<resultMap id="BaseResultMap" type="com.libstar.tc.dto.Biblios" >
<result column="name" property="bookrecno" jdbcType="VARCHAR" />
<result column="content" property="content" jdbcType="LONGVARBINARY" />
</resultMap>
然后自定义SQL查询数据,在写SQL的时候要注意了,将LONG类型的那个字段写在最后,像这样
SELECT ID,NAME,CONTENT FROM XXX;其中CONTENT字段为LONG类型字段.
即可成功