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; } } |
接口中的方法:
1
2
3
4
5
6
7
8
9
10
|
//智能标签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>
测试类中:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
///智能标签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(); } |