Mybatis实现插入多条记录和选择某几种范围记录的实现

当我还是一个初学者的时候,被这个问题为难苦了,不是因为它有多难,而是我实在太笨。但是只要注意积累,早晚是会成为有经验的开发者的,注意只是有经验,而不是会开发的开发者。

1、插入多条记录

mybatis的xml文件:

其中有几点要解释:

<foreach>:foreach 元素的功能非常强大,它允许你指定一个集合,声明可以在元素体内使用的集合项(item)和索引(index)变量。它也允许你指定开头与结尾的字符串以及集合项迭代之间的分隔符。这个元素也不会错误地添加多余的分隔符,你可以将任何可迭代对象(如 List、Set 等)、Map 对象或者数组对象作为集合参数传递给 foreach;

<item>:item 的值是本次迭代获取到的元素。当使用 Map 对象(或者 Map.Entry 对象的集合)时,index 是键,item 是值;

<index>:index 是当前迭代的序号;

<separator>:这个只是一个简单的分隔符,号。

<insert id="insertBatch" parameterType="java.util.List">
  INSERT INTO DL_RU_CASE (BATCH_NO,CASE_NO,PROC_DEF_KEY, FORM_ID,ECM_FILE_ID)
  VALUES
      <foreach collection ="list" item="item" index= "index" separator =",">
          (#{item.batchNo},#{item.caseNo},#{item.procDefKey},#{item.formId},#{item.ecmFileId})
     </foreach>
</insert>

dao层的代码:

注意:dao层的参数是集合,集合的实现则是在foreach中实现的;

public int insertBatch(List<CaseInfo> caseList){
        /*******/
    }

2、选择某几种范围记录

可能这么说大家不是特别理解,我解释一下,

比如:现在需要在表中找出年级是一年级、三年级、六年级的学生的记录,那么我们可能有几种不同的做法:

第一种:查出全部数据然后进行单个年级学生的筛选;

第二种:先查出一个年级再查出第二个年级;

其实这种做法也可以但是会有很大的代码量,不推荐大家这么做;

那么使用sql语句直接进行范围性的选择是很不错的选择;话不多说,上代码:

mybatis的xml文件:

<select id="getPageCaseExecuteResult">
select
    A.TASK_ID AS TASK_ID,
    A.BATCH_NO AS BATCH_NO ,
<if test="formList.size()>0 and formList != null">
    AND B.FORM_ID IN
   <foreach collection="formList" item="item" index="index" open="(" close=")" separator=",">
     #{item}
   </foreach>
</if>
</select >

dao层的代码:

集合中放的是查询的范围

public List<CalculatePrice> getValuatePriceRecord(List<String> formList) {
       /********/
}

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值