在Mybatis的xml配置中使用集合,主要是用到了foreach动态语句。

foreach的参数:

foreach元素的属性主要有 item,index,collection,open,separator,close。
item表示集合中每一个元素进行迭代时的别名.
index指定一个名字,用于表示在迭代过程中,每次迭代到的位置.
open表示该语句以什么开始

separator表示在每次进行迭代之间以什么符号作为分隔符.

close表示以什么结束.

1. Mybatis生成select * from table where id in(1,2,...,n)语句的查询

我们一般的做法是在方法的参数处指定传入的参数名称,在xml中使用的时候,集合的名称要和方法的Param的名称一致,这样便于阅读和理解,

然后是在对应的xml文件中使用foreach循环。

java代码如下:

public abstract List<Model> findByIds(@Param("ids")List<Integer> ids);

对应的xml代码如下:

select * from table
<where>
id in <foreach collection="ids" item="item" index="index"
open="(" separator="," close=")">#{item}</foreach>
</where>

2.Mybatis保存多条记录

我们同样是通过foreach的方法来实现,这里我们巧妙的利用了sql的语法规则用Mybatis的foreach动态语句来处理。

java代码:

public abstract void saves(@Param("tables")List<Model> tables);

xml代码:

insert into table(name,addtime) values
<foreach collection="tables" item="item" index="index" separator=",">
(#{item.name},#{item.addtime})
</foreach>

以上方法Mybatis会帮我们进行sql注入拦截,Mybatis如果采用#{xxx}的形式设置参数,Mybatis会进行sql注入的过滤。如果采用的是${xxx},Mybatis不会进行sql注入过滤,而是直接将参入的内容输出为sql语句。

判断集合是否有值

<if test="list!=null and list.size()>0"></if>

最新文章

  1. 《转载》Java异常处理的10个最佳实践
  2. 怎样获取Windows平台下SQL server性能计数器值
  3. CV界的明星人物们
  4. Aspose Cells 添加数据验证(动态下拉列表验证)
  5. Go语言获取项目当前路径
  6. 最近学习linux常用命令。
  7. The Perfect Stall (incomplete)
  8. 优秀android开源项目与解决方案推荐
  9. 8个超炫酷仿HTML5动画源码
  10. lightoj1017 dp
  11. 记录easyui一些用法
  12. PHP面向对象之const常量修饰符
  13. java的图形文档
  14. git关联远程仓库
  15. npm install的时候出现unexpected end of file错误提示时的解决办法
  16. hello world讲解1
  17. python list和函数之间的复制和原地址修改问题
  18. java和c++中的DES\3DES\Base64
  19. Java and SDK 环境变量设置
  20. 2017.12.14 Mybatis物理分页插件PageHelper的使用(一)

热门文章

  1. java.lang.NoSuchFieldError: deferredExpression
  2. python 参数
  3. hdu3966 树链剖分+成段更新
  4. sql-distinct
  5. 【CodeForces 613B】Skills
  6. Spring JdbcTemplate 的使用与学习(转)
  7. DLUTOJ 1331 Maximum Sum
  8. Spring学习4-面向切面(AOP)之schema配置方式
  9. BurpSuite之HTTP brute暴力破解
  10. windows2003安全加固