这篇文章主要介绍“Mybatis 怎么处理clob类型数据”,在日常操作中,相信很多人在Mybatis 怎么处理clob类型数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mybatis 怎么处理clob类型数据”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
当执行sql语句,返回的是map类型时, 比如
public List<Map<String, Object>> query(@Param("sql") String sql)
得到的数据是List<Map>类型数据,此时,如果有返回的有clob字段时,数据是这样的oracle.sql.CLOB@63636de0 ,显然,这不是我想要的,我需要的是字符串数据
就是定义类型处理器,来专门处理Clob字段,将Clob数据转换为字符串数据返回
@MappedJdbcTypes(JdbcType.CLOB) public class ClobTypeHandle extends BaseTypeHandler<Object> { @Override public void setNonNullParameter(PreparedStatement ps, int i, Object parameter, JdbcType jdbcType) throws SQLException { ps.setObject(i, parameter); } @Override public Object getNullableResult(ResultSet rs, String columnName) throws SQLException { return rs.getString(columnName); } @Override public Object getNullableResult(ResultSet rs, int columnIndex) throws SQLException { return rs.getString(columnIndex); } @Override public Object getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { return cs.getString(columnIndex); } }
package com.ttt.sysManager.po; public class View { private String VIEW_NAME; private String TEXT_LENGTH; private String TEXT;<span > </span>// clob大字段 private String EDITIONING_VIEW; private String READ_ONLY; // ...(get、set方法) }
List<View> getViewByPage(Map<String, Object> map);
<resultMap id="viewResultMap" type="com.ttt.sysManager.po.View"> <result property="VIEW_NAME" column="VIEW_NAME"/> <result property="TEXT_LENGTH" column="TEXT_LENGTH"/> <result property="TEXT" column="TEXT" javaType="String" jdbcType="VARBINARY"/> <result property="EDITIONING_VIEW" column="EDITIONING_VIEW" /> <result property="READ_ONLY" column="READ_ONLY" /> </resultMap> <select id="getViewByPage" parameterType="map" resultMap="viewResultMap" > SELECT VIEW_NAME,TEXT_LENGTH,TEXT,EDITIONING_VIEW,READ_ONLY FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM user_views) A WHERE ROWNUM <![CDATA[<=]]> #{endRow} ) WHERE RN <![CDATA[>]]> #{startRow} </select>
写入大字段与普通写入无区别,但是数据库字段类型需为clob,如为blob会报错,暂不解决。
到此,关于“Mybatis 怎么处理clob类型数据”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。