MyBatis传入数组集合类并使用foreach遍历

来源:脚本之家  责任编辑:小易  

index相当于一个变量,类似 for循环里的自增值一般mybatis里的foreach都是数组或

这篇文章主要介绍了MyBatis传入数组集合类并使用foreach遍历,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

<!-- 传递多参数的array参数表的foreach使用 --><selec

在mapper中传入数组或集合类,使用foreach标签遍历出其中的值与SQL语句拼接

<foreach collection="array" item=&quo

JAVA dao层接口

在xml中直接遍历and h.hotel_id in <foreach collectio

public interface UserDao { public List<User> getUsersByCollection(Collection collection); }

看例子<delete id = "delRightsByID" par

mapper文件

将无油无水的打蛋盆中倒入淡奶油,倒入的淡奶油需要漫过打蛋头的一半以上;(此时选择容器很重要,若打少量的奶油,建议选择用一个打蛋头和一个量杯配合使用)开始低速打发,刚开始会出现大量的大气泡,不用管它,加入细砂糖(砂糖的用量为淡奶油的10%)几分钟后,淡奶油开始逐渐变的浓稠时使用高速打发,出现纹路提起打蛋头,观察打蛋头尾端的淡奶油,偏软,无法挺立继续打发,可以看出淡奶油已经逐渐变得浓稠了提起打蛋头,可以看见打蛋头尾端的淡奶油已形成直立的鸡尾状,但很快就软下去了,此时淡奶油已经差不多了继续打发几分钟,实时观察淡奶油的状态,避免奶油被打发成豆腐渣看,打蛋头尾端的淡奶油已变的立挺而不下滑状态,奶油就打发

<select id="getUsersByCollection" resultMap="userMapper"> select * from users where id in <foreach collection="list" item="id" open="(" close=")" separator=","> #{id} </foreach> </select>

这个分析预测是谁搞出来的,是用屁股想的?去农村实地调查了吗?人均1.3万,我们村人均0.3万都没有,16年很多种地赔钱的,而且十里八村都这样,我们是被平均了吗?可是16年全国农民都不赚钱因为粮价不好,菜农,果农都不好,那这个分析从何说起

测试

隔代教育奶奶普通话不标准很正常,孩子偶尔跟着奶奶学习可以,方言也可以的。没有什么不可以的。但是作为家长来说,都希望孩子从小就能说好普通话,可是隔代教育的确会影响孩子的普通话。作为家长来说的确是很为难,不让奶奶带孩子吧,不现实,奶奶带孩子会有这样那样的矛盾。关于普通话这个问题,我感觉不用太在意,因为孩子小的时候语言是很容易改正的。孩子上了学后老师会教授普通话,到时候孩子自然会辨别奶奶的普通话不标准的,到时候也许会是孩子纠正奶奶的普通话。作为家长,不要干扰,不要让老人觉得很尴尬。

@Test public void getUsersByCollection() { Collection collection = new ArrayList<Integer>(); collection.add(1); collection.add(3); collection.add(5); List<User> users = userDao.getUsersByCollection(collection); System.out.println(users); }

大概推荐几款“好用不坏”的APP。VEditor——GIF图功能点:1、视频反转(将视频画面左右反转)2、导出视频声音、音频反转(声音倒放)3、视频转GIF4、无声处理自由度:可以自由选择视频时长、视频可以是手机存储内存储的视频也可为实时拍摄的视频。VUE——视频编辑手机端视频编辑神器。功能点:1、视频剪辑、加滤镜声音2、视频快放慢放等(适合编辑延时视频)3、导出分享方便(可导出至本地视频且可去除水印、可分享至朋友圈、微博等主流平台)TIM——商务QQ功能点:1、以聊天为主,去除绝大部分腾讯广告和功能2、安装包较小,节约空间需要注意:TIM不支持大部分APP的QQ快速登陆。Welike——微博

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

mybatis传值List类型的参数如何遍历

基本概念

WHERE id=1 OR id=10 OR id=16

在查询条件中,查询条件定义成一个sql片段,需要修改sql片段

如图所示

案例:

1.创建测试类

@Test

public  void    findUserList() throws Exception{

SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtil.getSqlSessionFactory();

SqlSession session = sqlSessionFactory.openSession();

UserMapper mapper = session.getMapper(UserMapper.class);

UserQueryVo queryVo = new   UserQueryVo();

UserCustomer customer = new  UserCustomer();

queryVo.setCustomer(customer);

List<Integer>   ids=new   ArrayList<Integer>();

ids.add(1);

ids.add(10);

ids.add(22);

queryVo.setIds(ids);

List<UserCustomer> list = mapper.findUserList(queryVo);

for (UserCustomer userCustomer : list) {

System.out.println(userCustomer.getId()+":"+userCustomer.getUsername());

}

session.close();

}

2.创建UserQueryVo

public class UserQueryVo {

//传递多个id

private    List<Integer>   ids;

//在这里包装查询条件(用户查询条件)

/*private   User   user;*/

private  UserCustomer  customer;

set  get  省

}

public class UserCustomer  extends  User {

//在这里面进行扩展用户信息

}

public class User  implements  Serializable {

private int id;

private String username;

private Date birthday;

private String sex;

private String address;

//添加订单属性

private  List<Orders>   ordersList;

set  get  省

3. UserMapper

public interface UserMapper {

//用户信息综合查询列表

public   List<UserCustomer>   findUserList(UserQueryVo queryVo) throws  Exception;

}

4.mapper.xml

<!--    用户综合查询列表

#{customer.sex} : 取出pojo包装类型里面的性别的值

${customer.name}:  取出pojo对象里面的用户名称

-->

<select id="findUserList" parameterType="UserQueryVo"   resultType="UserCustomer">

select   *   from     user    <!--  user.sex=#{customer.sex}   and  user.username   like  '%${customer.username}%'  -->

<where>

<!--  如果引用sql片段不在这个   映射文件中那么前面就要加上namespace  -->

<include refid="query_sql_where"/>

</where>

<!--   定义一个sql 片段

id:  是sql片段的唯一标识

基于单表定义sql片段  ,  那么这样sql片段重用性才高;

sql片段里面不要包含where                                        

-->

<sql id="query_sql_where">

<if test="customer.sex!=null   and   customer.sex!=''">

and   user.sex=#{customer.sex}

</if>

<if test="customer.username!=null  and   customer.username!=''">

and  user.username   like  '%${customer.username}%'

</if>

<if test="ids!=null">

<!--

collection  :  指定对象集合里面的属性           ids

item        :  遍历的时候每次生成的名称     user_id

open        :    开始遍历的时候  拼接串AND  (

close       :  遍历结束时拼接串                      )

separator   :    每次遍历的时候要拼接的串

-->

<!--   AND  ( id=1   OR   id=10   OR   id=22 -->

<!--   <foreach collection="ids"  item="user_id"  open="AND  ( "  close=")"  separator="or">

每次遍历需要拼接的串

id=#{user_id}

</foreach> -->

<!--  AND id  IN(1,10,22)-->

<foreach collection="ids"  item="user_id"  open="AND id  IN( "  close=")"  separator=",">

<!--  每次遍历需要拼接的串  -->

#{user_id}

</foreach>

</if>

</sql>

mybatis传入多个数组怎么同时遍历

1. hack mybaits 的原生分页,写一个分页插件,仍然调用 mybaits 提供的分页接口即可 2. 手动编写分页 sql ,例如:在 Mapper 里面 select * from test limit #{offset}, #{limit} 在 dao 里面调用的时候,传入 offset 和 limit 两个参数即可。...

mybatis 中foreach传入的是对像List时怎么办

public class ParamOrder {

private String orderStr; // 排序字段名字(与返回字段对应)

private String orderType; // 排序方式

public String getOrderStr() {

return orderStr;

}

public void setOrderStr(String orderStr) {

this.orderStr = orderStr;

}

public String getOrderType() {

return orderType;

}

public void setOrderType(String orderType) {

this.orderType = orderType;

}

}

public class ParamPage {

private int page; // 查询的页码

private int pageSize; // 每页显示的条数

private List<ParamOrder> order; // 排序的list

public int getPage() {

return page;

}

public void setPage(int page) {

this.page = page;

}

public int getPageSize() {

return pageSize;

}

public void setPageSize(int pageSize) {

this.pageSize = pageSize;

}

public List<ParamOrder> getOrder() {

return order;

}

public void setOrder(List<ParamOrder> order) {

this.order = order;

}

}

<if test="paramPage.order!=null">

<foreach collection="paramPage.order" index="index" item="item"

open="order by" separator="," close=" ">

#{paramPage.order.orderStr} ASC

</foreach>

</if>

collection就是传过来的集合,item就是集合里的元素,

#{paramPage.order.orderStr}应该换成#{item}

试试看

mybatis里面的foreach怎么循环list

直接传个实体对象进去,在service层 JavaBean bean =new JavaBean (); bean.setId(id); bean.setName(name); dao.insert(bean); 上面的id,name等是service方法的各个参数 然后在myBatis 中的sql语句中直接引用各个属性就行了xx=#{id},xx=#{name}

mybatis输入参数为map<string,list<string>>,foreach怎么循环

的确可以封成map传入啊; 多项删除的时候,例如传入ids=[1,2,3,4,5] controler: Map map = new HashMap(); map.put("ids",ids); mapper: public void deleteByMultipe(@Param("map")Map map); mapper.xml: delete from oa_user u where u.id in ...本回答被提问者采纳

  • 本文相关:
  • mybatis之foreach用法详解
  • mybatis foreach批量插入数据:oracle与mysql区别介绍
  • mybatis中动态sql,if,where,foreach的使用教程详解
  • mybatis中foreach报错:_frch_item_0 not found的解决方法
  • mybatis foreach标签使用不当导致异常的原因浅析
  • mybatis动态sql之if、choose、where、set、trim、foreach标记实例详解
  • oracle+mybatis的foreach insert批量插入报错的快速解决办法
  • java在web页面上的编码解码处理及中文url乱码解决
  • java通过sms短信平台实现发短信功能 含多语言
  • 微信支付之公众号支付(java实现)
  • java观察者模式实现和java观察者模式演化
  • java异常 exception类及其子类(实例讲解)
  • java获取classpath路径的方法详解
  • 快速解决springmvc @requestbody 用map接收请求参数的问题
  • 浅谈java中replace()和replaceall()的区别
  • 简单了解spring cloud 网关服务
  • 设计模式之责任链模式_动力节点java学院整理
  • mybatis传值List类型的参数如何遍历
  • mybatis传入多个数组怎么同时遍历
  • mybatis 中foreach传入的是对像List时怎么办
  • mybatis里面的foreach怎么循环list
  • mybatis输入参数为map<string,list<string>>,f...
  • mybatis foreach index 可以做为条件使用吗
  • 对象数组属性怎么放到mybatis迭代
  • MyBatis中动态sql语句foreach用法
  • mybatis 中foreach传入的是对像List时怎么办
  • mybatis 中foreach传入的是对像List时怎么办
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved