• Mybatis智能标签


    实体类:

    public class Book {
        private Integer bookID;
        private String bookName;
        private String bookAuthor;
        private Integer bookPrice;
    
        public Book() {
        }
    
        public Integer getBookID() {
            return this.bookID;
        }
    
        public void setBookID(Integer bookID) {
            this.bookID = bookID;
        }
    
        public String getBookName() {
            return this.bookName;
        }
    
        public void setBookName(String bookName) {
            this.bookName = bookName;
        }
    
        public String getBookAuthor() {
            return this.bookAuthor;
        }
    
        public void setBookAuthor(String bookAuthor) {
            this.bookAuthor = bookAuthor;
        }
    
        public Integer getBookPrice() {
            return this.bookPrice;
        }
    
        public void setBookPrice(Integer bookPrice) {
            this.bookPrice = bookPrice;
        }
    }
    

      

    接口中的方法:

       //智能标签where if
        public List<Book> findtrueBookByIf(String bookName,Integer bookPrice);
        //智能标签where choose
        public List<Book> findtrueBookByChoose(Integer bookPrice);
        //智能标签where foreach array
        public List<Book> findtrueBookByForeachArray(int [] array);
        //智能标签where foreach list
        public List<Book> findtrueBookByForeachList(List<Integer> list);
        //智能标签where foreach list
        public List<Book> findtrueBookByForeachListBook(List<Book> list);
    

      

    小配置中:

    <!--智能标签,where if-->
        <select id="findtrueBookByIf" resultType="Book">
            select * from book
            <where>
                <if test="#{0}!=null">
                    AND bookName LIKE '%' #{0} '%'
                </if>
                <if test="#{0}!=null">
                    AND bookPrice>#{1}
                </if>
            </where>
        </select>
        <!--智能标签,where choose-->
        <select id="findtrueBookByChoose" resultType="Book">
            select * from book
            <where>
                <choose>
                    <when test="#{0}!=null">
                        AND bookPrice>#{0}
                    </when>
                    <otherwise>1=1</otherwise>
                </choose>
            </where>
        </select>
        <!--智能标签,where foreach array-->
        <select id="findtrueBookByForeachArray" resultType="Book">
            select * from book
            <where>
                bookID IN 
                <foreach collection="array" open="(" close=")" separator="," item="myid">
                    #{myid}
                </foreach>
            </where>
        </select>
        <!--智能标签,where foreach list-->
        <select id="findtrueBookByForeachList" resultType="Book">
            select * from book
            <where>
                bookID IN
                <foreach collection="list" open="(" close=")" separator="," item="myid">
                    #{myid}
                </foreach>
            </where>
        </select>
        <!--智能标签,where foreach list book-->
        <select id="findtrueBookByForeachListBook" resultType="Book">
            select * from book
            <where>
                bookID IN
                <foreach collection="list" open="(" close=")" separator="," item="book">
                    #{book.bookID}
                </foreach>
            </where>
        </select>

    测试类中:

    ///智能标签where + foreach list Book自定义list 进行多条件查询
        @Test
        public void t9selectZhiNengByForeachListBook(){
            SqlSession session= MyBatisUtils.getSession();
    
            IBookDAO mapper = session.getMapper(IBookDAO.class);
            List<Book> list=new ArrayList<Book>();
            Book b1=new Book();
            b1.setBookID(1);
            Book b2=new Book();
            b2.setBookID(2);
            list.add(b1);
            list.add(b2);
            List<Book> books = mapper.findtrueBookByForeachListBook(list);
            for (Book items:books) {
                System.out.println(items.getBookName());
            }
    
            session.close();
    
        }
    
    
        ///智能标签where + foreach list 进行多条件查询
        @Test
        public void t8selectZhiNengByForeachList(){
            SqlSession session= MyBatisUtils.getSession();
    
            IBookDAO mapper = session.getMapper(IBookDAO.class);
            List<Integer> list=new ArrayList<Integer>();
            list.add(1);
            list.add(3);
            List<Book> books = mapper.findtrueBookByForeachList(list);
            for (Book items:books) {
                System.out.println(items.getBookName());
            }
    
            session.close();
    
        }
    
    
        ///智能标签where + foreach array 进行多条件查询
        @Test
        public void t7selectZhiNengByForeachArray(){
            SqlSession session= MyBatisUtils.getSession();
    
            IBookDAO mapper = session.getMapper(IBookDAO.class);
            int[] array={1,3};
            List<Book> books = mapper.findtrueBookByForeachArray(array);
            for (Book items:books) {
                System.out.println(items.getBookName());
            }
    
            session.close();
    
        }
    
    
    
        ///智能标签where + choose进行多条件查询
        @Test
        public void t6selectZhiNengByChoose(){
            SqlSession session= MyBatisUtils.getSession();
    
            IBookDAO mapper = session.getMapper(IBookDAO.class);
            List<Book> books = mapper.findtrueBookByChoose(500);
            for (Book items:books) {
                System.out.println(items.getBookName());
            }
    
            session.close();
    
        }
    
    
        ///智能标签where + if 进行多条件查询
        @Test
        public void t5selectZhiNengByIf(){
            SqlSession session= MyBatisUtils.getSession();
    
            IBookDAO mapper = session.getMapper(IBookDAO.class);
            List<Book> books = mapper.findtrueBookByIf("心",40);
            for (Book items:books) {
                System.out.println(items.getBookName());
            }
    
            session.close();
    
        }
    

      

  • 相关阅读:
    [985] 令牌放置
    [191] 位1的个数
    [637] 二叉树的层平均值
    大数据量时 Mysql LIMIT如何正确对其进行优化(转载)
    数据库中,表一sum得出一个值,赋给表二的某个字段,为null
    安装JDK提示: 该项不适于在指定状态下使用的错误
    hibernate中多对一问题
    JSONObject基本内容(三)
    JSONObject基本内容(二)
    JSONObject基本内容(一)
  • 原文地址:https://www.cnblogs.com/liuying23/p/11658251.html
Copyright © 2020-2023  润新知