对于快速学习ibatis而没有过多时间去查阅资料的朋友,比如我,可能有些东西不一定能在快速上手的文档中涉猎到。今天就碰到一个问题,要在分页 查询的同时进行where语句删选操作。由于表记录比较少,因此采用了in语句,但是in语句所设计的字段是number型的,因此在拼凑出in后面括号 所需的内容时,出现了错误。说内容不是数字还是说不能为字符串,有点忘了,反正就是吧拼凑的in里的内容当成字符串‘’了。

解决:在sqlmap文件中不使用“#VALUE#”来原样(参数对应什么类型,就当什么类型,比如拼凑的内容为string则自动加上了‘’)读 取,而是$VALUE$方式来读取,即不加任何的东西,比如单引号啥的,而是原样添加到sqlmap文件的sql语句中。如此,则OK了。

以下为#与$的使用区别:

$中间的变量就是直接替换成值的
#会根据变量的类型来进行替换
比如articleTitle的类型是string, 值是"标题"的时候
$articleTitle$ = 标题
#articleTitle# = '标题'

----------------------------------------

然后从别人那查到还有个复杂点的方法,当然用在in语句方面不如拼凑语句来得方便,但是在其他时候也许有用,先记录下来:

ibatis中如何配置in语句,需要迭代,不能直接用string的写法

<select id="sql_test" parameterclass="myPramBean" resultclass="myResult">
select *from tablewhere name in
<iterate property="ids" conjunction="," close=")" open="(" />
#value[]#
</iterate>
and code=#code#
</select>
myPramBean
{
private String code;
private List ids;
...
}

eg:

<select
id="testtt" parameterClass="java.util.Map">
    SELECT * FROM productnav WHERE id IN
    <iterate
property="inParam" open="(" close=")"
conjunction=",">

    #inParam[]#
    </iterate>
</select>

然后in语句可能是动态的,因此使用了dynamic标签,结合使用即可满足多数需求。

使用举例:

<delete
id="deleteRPRByQRIDS"
parameterClass="java.lang.String"
>

delete from RECORD_PERSON_RELATION

where QRID in ($qrIDs$)

</delete>

其中,qrIDs的形式为:

对于数据库表里的相应字段为字符型时:'1','2','3'

对于数据库表里的相应字段为整型时:1,2,3

其它类型以此类推。

注意:这里用"$",而不用”#“

最新文章

  1. css水平垂直居中(绝对定位居中)
  2. Python 基礎 - 文件操作_v2
  3. Xcode添加注释
  4. SQLServer索引
  5. codeforces Round #263(div2) D. Appleman and Tree 树形dp
  6. Python核心编程-描述符
  7. 学习总结 vs软件简单了解
  8. VLC 重新编译第三方库的预编译包contrib
  9. MongoDB复制机制实例
  10. HDU 1142 A Walk Through the Forest(SPFA+记忆化搜索DFS)
  11. pthread_attr_t 线程属性(二)
  12. 如何修复在Microsoft Azure中“虚拟机防火墙打开,关闭RDP的连接端口”问题
  13. Microsoft Deployment Toolkit 2013 Preview Release Now Available
  14. intent,实现两个活动之间数据的传递
  15. 如何用jQuery实现div随鼠标移动而移动(详解)?----2017-05-12
  16. OpenLayers3--ol3--新特性
  17. NYOJ--20--搜索(dfs)--吝啬的国度
  18. JSON Schema 校验实例
  19. php通过system()调用Linux命令问题
  20. C++模板总结

热门文章

  1. Android中常见的坑有哪些?
  2. 【C++ 拾遗】extern 关键字
  3. [洛谷P4568][JLOI2011]飞行路线
  4. [洛谷P3693]琪露诺的冰雪小屋
  5. 【BZOJ 3643】Phi的反函数 数搜索
  6. HDU 1059 完全背包
  7. idea初学建立maven项目报错
  8. Spring学习--xml 中 Bean 的自动装配
  9. video视频在结束之后回到初始状态
  10. Activiti工作流引擎核心介绍