首页 > 其他 > 详细

mybatis blob与clob处理

时间:2016-01-05 22:17:37      阅读:240      评论:0      收藏:0      [点我收藏+]

insert语句返回oracle序列主键:
view source print?

<insert id=parameterType=>
  keyProperty=order=>
    4 </selectKey>
  6 7 8 9 </insert>


selectKey中order属性的值是不同的,BEFORE先选择主键,设置keyProperty的值然后执行插入语句。 AFTER是先执行插入语句,然后执行selectKey。

条件查询时候的入参不固定 :
<select id=resultMap=>
    03 <where>
        test=>
        06 >
        test=>
        09 >
    </where>
</select>

如果有uuid和portletid这任意其中之一的入参,则执行条件查询,否则为普通查询 

<update id=parameterType=>
   3 <set>
        test=>name=#{name},</>
        test=>isshow=#{isshow},</>
        test=>cid=#{cid}</>
   </set>
   9 </update>

 update方法的不固定入参

 处理clob,blob类型,第一篇博客blablabla写了一堆代码,在这里简单配置一个typehandler就搞定
<update id=parameterType=>
   3 4 5 </update>

blob的类型处理器为 B lobTypeHandler(低版本的使用的是spring orm包的typehandler,只支持mybatis2.0版本,现在MyBatis已经3.2了,Spring太不给面子了,和hibernate 是好基友,spring已经支持hibernate4了)

select * from 表名 where 列 in (1,2,3)
<select id=resultMap=>
  3 4 5 index=collection=6 "("","")">
        8 </foreach>
</select>
入参为cid,index为循环的index,collection定义入参类型,array代表数组,也可以为list,显而易见open,separator和close是帮你拼接sql的,碉堡了有木有!

还有更多的动态sql高级应用和关联查询,具体参看git上的官方文档! http://mybatis.github.io/mybatis-3/zh/configuration.html#settings




使用Mybatis时,关于字段为Blob时,首先你的pojo/domian/to,就是与数据库对应的对象Class中
属性肯定是byte[],若是Clob,那就为char[],这个不用解释。

问题:插入数据没有问题,但是查询就傻了,得到的总是为Null.
解决:返回类型建立一个resultMap
<result column="HTML_CODE" property="htmlCode" jdbcType="BLOB"  typeHandler="org.apache.ibatis.type.BlobTypeHandler"/>

如上所示,问题解决。(当然Clob也是一样,改一下反序列化的类,typeHandler就行)

mybatis blob与clob处理

原文:http://www.cnblogs.com/duanxz/p/3874009.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!