zoukankan      html  css  js  c++  java
  • 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();
    
        }
    

      

  • 相关阅读:
    Two Sum II
    Read N Characters Given Read4
    Binary Tree Upside Down
    2015半年记
    再写一帖~就《离开上海》一文再说明
    再见,上海~非主流码农在上海的9年心路历程
    Debug就是Debug,Release就是Release
    代码修改之后MSbuild编译不出最新的dll解决方法
    回顾会议议程
    搞好团队建设的致胜法宝
  • 原文地址:https://www.cnblogs.com/liuying23/p/11658251.html
Copyright © 2011-2022 走看看