博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ibatis中传List参数
阅读量:5164 次
发布时间:2019-06-13

本文共 1985 字,大约阅读时间需要 6 分钟。

Ibatis中用list传参数的方式。

Java代码  select count(id) from `user` where id in #[]# and status=1 。

1 

程序调用的方式 

java代码

1 public Integer getcount(List
friendsIds) throws SQLException { 2 Integer count(Integer)client.queryForObject("User.getcount", friendsIds); 3 return count; 4 }

还可以在程序把list拼成String,用string当参数传给Ibatis查询,但是要注意在Ibatis的xml中要用 $parameter$来取参数,以保证Ibatis不改变参数的性质,如果用#parameter#取参数,此种传参的办法就不行了 。

select count(id) from `user` where id in ($parameter$)(注意:容易导致sql注入)

ibatis 数组参数
 

用迭代来实现,用parameterClass 来接收然后通过<iterate>遍历整个集合

Iterate的属性:

prepend - 可被覆盖的SQL语句组成部分,添加在语句的前面(可选)
property - 类型为java.util.List的用于遍历的元素(必选)
open - 整个遍历内容体开始的字符串,用于定义括号(可选)
close -整个遍历内容体结束的字符串,用于定义括号(可选)
conjunction - 每次遍历内容之间的字符串,用于定义AND或OR(可选)
<iterate> 遍历类型为java.util.List的元素。

 例子: 

user.xml

1 

注意:使用<iterate>时,在List元素名后面包括方括号[]非常重要,方括号[]将对象标记为List,以防解析器简单地将 List输出成String。

(#) 使用的是PreparedStatement 机制,生成的SQL字符串中含有很多?,这些会被动态的添加参数进去查询

($) 中的变量好比字符串直接替换。

Dao.java

1 public UserModel getUser(UserModel userModel) throws SQLException {                       2  3 Map
map = new HashMap
(); 4 5 List
list = new ArrayList
(); 6 7 UserModel userModel1 = new UserModel(); 8 9 userModel1.setUserId("1");10 11 list.add(userModel1);12 13 UserModel userModel2 = new UserModel();14 15 userModel2.setUserId("lsw"); 16 17 list.add(userModel2); 18 19 map.put("personList", list);20 21 List sqlUserModelList = getSqlMapClientTemplate().queryForList("getUser", map);22 23 UserModel sqlUserModel = new UserModel(); 24 25 return sqlUserModel; }

 

转载于:https://www.cnblogs.com/lcngu/p/5083695.html

你可能感兴趣的文章
C语言基础小结(一)
查看>>
STL中的优先级队列priority_queue
查看>>
UE4 使用UGM制作血条
查看>>
浏览器对属性兼容性支持力度查询网址
查看>>
OO学习总结与体会
查看>>
虚拟机长时间不关造成的问题
查看>>
面试整理:Python基础
查看>>
Python核心编程——多线程threading和队列
查看>>
Program exited with code **** 相关解释
查看>>
植物大战僵尸中文年度版
查看>>
26、linux 几个C函数,nanosleep,lstat,unlink
查看>>
投标项目的脚本练习2
查看>>
201521123107 《Java程序设计》第9周学习总结
查看>>
Caroline--chochukmo
查看>>
iOS之文本属性Attributes的使用
查看>>
从.Net版本演变看String和StringBuilder性能之争
查看>>
Excel操作 Microsoft.Office.Interop.Excel.dll的使用
查看>>
解决Ubuntu下博通网卡驱动问题
查看>>
【bzoj2788】Festival
查看>>
执行gem install dryrun错误
查看>>