增删查改批量操作

测试接口绑定方案:
    1.要求接口与所对应的xml映射文件处于同一包下,并且文件名字保持一致
    2.sql映射文件的命名空间namespace 要求设置为所对应的接口的权限定名  包名.类名 com.xxxx.mapper.EmpMapper
    3.sql映射文件中sql语句标签的id值要与对应的借口中的对应的抽象方法的方法名称保持一致
    4.抽象方法的参数类型与返回值类型要求与对应的sql标签的入参与结果类型保持一致
    5.当存在 多参数传递问题,sql语句中的占位符的名字只能默认为:[arg1, arg0, param1, param2]
    6.如果想要占位符的名字匹配方法的参数名 可以使用@Param("参数的别名"),这时候在sql中就可以根据Param提供的别名设置占位符的名字

 可以解决多参数传递的问题

 

//新增
    int insertEmp(Emp emp);

    //修改
    int updateEmp(Emp emp);

    //删除
    int deleteEmp(int empno);

    //批量操作
    //批量删除
    //根据多个id同时删除员工信息
    int deleteEmpSome(List<Integer> list);

    //批量修改
    int updateEmpSome(List<Emp> list);

    //批量插入
    int insertEmpSome(List<Emp> list);
<!--新增-->
    <insert id="insertEmp" parameterType="emp">
        insert into emp(empno,ename,deptno) values(#{empno},#{ename},#{deptno})  /*当参数为javabean,占位符的名字 自动匹配对象的属性名*/
    </insert>

    <!--修改-->
    <update id="updateEmp" parameterType="emp">
        update emp set ename = #{ename} where empno = #{empno}
    </update>

    <!--删除-->
    <delete id="deleteEmp" parameterType="int">
        delete from emp where empno = #{id}
    </delete>
    
    <!--批量删除-->
    <delete id="deleteEmpSome" parameterType="list">
        delete from emp where empno in(
        <foreach collection="list" item="item" separator=",">
            #{item}
        </foreach>
         )
    </delete>

    <!--批量修改-->
    <update id="updateEmpSome" parameterType="list">
        <foreach collection="list" item="item" open="begin" close=";end;" separator=";">
            update emp set ename =#{item.ename}  where empno =#{item.empno}
        </foreach>

    </update>

    <!--批量插入-->
    <insert id="insertEmpSome" parameterType="list">
        insert into emp
      (empno, ename, deptno)
      <foreach collection="list" item="item" separator="union">
          select #{item.empno}, #{item.ename},#{item.deptno}  from dual
      </foreach>
    </insert>
//添加
        Emp emp = new Emp();
        emp.setEmpno(6789);
        emp.setEname("wangwu");
        emp.setDeptno(20);
        int row = mapper.insertEmp(emp);
        System.out.println(row);

//修改
        Emp emp = new Emp();
        emp.setEmpno(8888);
        emp.setEname("张三丰");
        System.out.println(mapper.updateEmp(emp));

//删除
        System.out.println(mapper.deleteEmp(7777));
//批量删除
        mapper.deleteEmpSome(List.of(6666,7777));

//批量修改
        mapper.updateEmpSome(List.of(
                new Emp(8888,"张三"),
                new Emp(9999,"hehe")
        ));

//批量插入
        mapper.insertEmpSome(List.of(
                new Emp(8888,"asdf",40),
                new Emp(9999,"qwer",30)
        ));

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值