实体类:
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();
}