mybatis的批量插入与动态查询

1:插入一条记录并且返回主键Id

<insert id="insert" useGeneratedKeys="true" keyProperty="aa" parameterType="xx">

以上的语句中,中间两个属性是必须的,aa是这个表的主键id字段所对应的Java对象的字段,插入后对象.getXXId()即可获取主键

2:批量插入

 <!-- 批量插入 -->
  <insert id="batchAdd" parameterType="java.util.List">
        INSERT INTO two_stage(model_manage_id,two_stage_name,two_stage_value,coefficient,norm_type,p_id,stage_leval)
        VALUES
        <foreach collection="list" item="item" index="index" separator="," >
            (#{item.modelManageId},#{item.twoStageName},#{item.twoStageValue},
              #{item.coefficient},#{item.normType},#{item.pId},#{item.stageLeval})
        </foreach>
   </insert>

    //创建一级指标
        TwoStage v=new TwoStage(modelManage.getModelManageId(), "V", modelVo.getV(), null, 0, 0,1);
        TwoStage c=new TwoStage(modelManage.getModelManageId(), "C", modelVo.getC(), null, 1, 0,1);
        TwoStage s=new TwoStage(modelManage.getModelManageId(), "S", modelVo.getS(), null, 2, 0,1);
        ArrayList<TwoStage> jList=new ArrayList<TwoStage>();
        jList.add(v);
        jList.add(c);
        jList.add(s);
        mapperService.insert("com.companyname.userRoleFunction.bean.mapper.TwoStageMapper.batchAdd",jList);
3:动态查询

 <select id="selectUserForeach" resultType="java.lang.Integer" parameterType="list">
    select two_stage_id from two_stage  
        <where>
            two_stage_name in
            <foreach item="item" index="index" collection="list"
                open="(" separator="," close=")">
                #{item}
            </foreach>
        </where>
        order by field(two_stage_name,
            <foreach item="item" index="index" collection="list"
                separator="," >
                #{item}
            </foreach>)
</select>

ArrayList<String> list1=new ArrayList<String>();
        list1.add("V");
        list1.add("C");
        list1.add("S");
        
        //一级指标的id
        List<Integer> onelevalId = mapperService.selectAllObject("com.companyname.userRoleFunction.bean.mapper.TwoStageMapper.selectUserForeach", list1);

//以上动态查询中,第一个遍历是把list里面的查询条件遍历出来,后一个遍历是让查询出来的记录按查询条件先后顺序排列,因为默认的是按查询出来记录的主键id排列的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值