zoukankan      html  css  js  c++  java
  • MyBatis的动态SQL操作--删除

    删除选中的条目,具体选中哪些是不确定的

    根据选择条目的不同生成不同的sql语句来删除不同的条目.

    delete from student where id in (1, 3, 5)
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    
    <!--
        namespace的取值可以是实体的全限定名,这样有好处!
     -->
    <mapper namespace="com.winner.entity.Student">
        <resultMap id="studentMap" type="Student">
            <id property="id" column="id"/>
            <result property="name" column="name"/>
            <result property="sal" column="sal"/>
        </resultMap>
        <delete id="dynaDeleteArray">
            delete from student where id in
            <!-- foreach用于迭代数组元素
                 open表示开始符号
                 close表示结束符合
                 separator表示元素间的分隔符
                 item表示迭代的数组,属性值可以任意,但提倡与方法的数组名相同
                 #{ids}表示数组中的每个元素值
             -->
            <foreach collection="array" open="(" close=")" separator="," item="ids">
                #{ids}
            </foreach>
        </delete>
    
        <delete id="dynaDeleteList">
            delete from student where id in
            <foreach collection="list" open="(" close=")" separator="," item="ids">
                #{ids}
            </foreach>
        </delete>
    </mapper>
    public class StudentDao {
        /**
         * 根据ID批量删除(数组)
         */
        public void dynaDeleteArray(int... ids) throws Exception{
            SqlSession sqlSession = null;
            try{
                sqlSession = MybatisUtil.getSqlSession();
                sqlSession.delete(Student.class.getName() + ".dynaDeleteArray", ids);
                sqlSession.commit();
            }catch(Exception e){
                e.printStackTrace();
                sqlSession.rollback();
                throw e;
            }finally{
                MybatisUtil.closeSqlSession();
            }
        }
    
        /**
         * 根据ID批量删除(集合)
         */
        public void dynaDeleteList(List<Integer> ids) throws Exception{
            SqlSession sqlSession = null;
            try{
                sqlSession = MybatisUtil.getSqlSession();
                sqlSession.delete(Student.class.getName() + ".dynaDeleteList", ids);
                sqlSession.commit();
            }catch(Exception e){
                e.printStackTrace();
                sqlSession.rollback();
                throw e;
            }finally{
                MybatisUtil.closeSqlSession();
            }
        }
    
        public static void main(String[] args) throws Exception{
            StudentDao dao = new StudentDao();
            //dao.dynaDeleteArray(new int[]{1,3,5,7,77});
            //dao.dynaDeleteArray(1,3,5,7,77);
            //dao.dynaDeleteArray(2,4,444);
    
            List<Integer> ids = new ArrayList<Integer>();
            ids.add(6);
            ids.add(8);
            ids.add(9);
            dao.dynaDeleteList(ids);
        }
    }
  • 相关阅读:
    直接插入排序
    简单选择排序
    xml错误: A pseudo attribute name is expecte
    接口, 抽象类
    The hierarchy of the type AudienceAdvice is inconsistent 《spring in action》
    spring配置文件出错解决办法
    Sangfor tester 实习总结
    求一棵树的面积,2014百度开发测试笔试题
    百度2014校招-深圳-开发测试-求最小“不重复数”
    二个数相加,不使用加减乘除
  • 原文地址:https://www.cnblogs.com/winner-0715/p/5314840.html
Copyright © 2011-2022 走看看