mysql 不定条件查询_MYSQL复杂查询(条件不定查询+按降序/升序分页显示)

本文介绍了如何在MyBatis中实现条件不定查询和按降序/升序分页显示。通过在Mapper.xml和Mapper接口中定义方法,结合Controller接收参数,实现了根据多个条件灵活查询数据,并通过调整SQL的order by和limit实现分页功能。
摘要由CSDN通过智能技术生成

使用mybatis框架后,mybatis-generator可以为我们自动生成操作数据库(MYSQL)的*Mapper.xml文件+模型类+*Mapper接口,但是,mybatis-generator并不能为我们生成所有方法,例如根据输入的不定条件来查询数据,又比如按照某个参数升序或者降序并分页显示所查到的数据,下面介绍一下条件不定查询及按降序/升序分页显示的方法。

在BookMapper.xml中加入selectByCondition方法

1

2 parameterType="com.wn.model.Book">

3 select4

5 from t_book6

7

8 book_name=#{bookName,jdbcType=VARCHAR}9

10

11 AND author=#{author,jdbcType=VARCHAR}12

13

14 AND publish_date=#{publishDate,jdbcType=TIMESTAMP}15

16

17

在BookMapper.java中加入:

List selectByCondition(Book record);

在BookDao加入

1 public ListselectByCondition(Book book) {2 returnbookMapper.selectByCondition(book);3 }

在BookService加入

1 public ListselectByCondition(String bookName, String author, Date publishDate) {2 Book book = newBook();3 book.setBookName(bookName);4 book.setAuthor(author);5 book.setPublishDate(publishDate);6 returnbookDao.selectByCondition(book);7 }

在BookController加入

1 @RequestMapping(value = "/selectByCondition", method =RequestMethod.GET)2 public List selectByCondition(@RequestParam(value="bookName",required=false) String bookName,3 @RequestParam(value="author",required=false) String author,4 @RequestParam(value="publishDate",required=false) @DateTimeFormat(pattern = "yyyy-mm-dd HH:mm:ss")Date publishDate) {5 returnbookService.selectByCondition(bookName, author, publishDate);6 }

2、按降序/升序分页显示(基于缓存(本地缓存)花店的代码实现)

在FlowerMapper.xml中加入

1

2 parameterType="java.lang.Integer">

3 select4

5 from t_flower6 order by price DESC limit #{start}, #{size}7

在FlowerMapper.java中加入:

1 List selectLimit(@Param("start") int start, @Param("size") int size);

上述start表示开始显示记录索引,size表示显示记录的条数,为了方便找到这两个参数,[email protected]

在FlowerDao中加入:

1 /*

2 * 传入开始显示记录的索引,即显示记录的条数,实现分页显示功能3 */

4 public List selectLimit(int start, intsize) {5 returnflowerMapper.selectLimit(start, size);6 }

在FlowerService中加入:

1 public ListselectLimit(Integer start, Integer size) {2 returnflowerDao.selectLimit(start, size);3 }

在FlowerController中加入

1 @RequestMapping(value = "/getFlowerByLimit", method =RequestMethod.GET)2 public List getFlowerByLimit(@RequestParam("start") Integer start, @RequestParam("size") Integer size) {3 returnflowerService.selectLimit(start, size);4 }

原文:http://www.cnblogs.com/wangna----558169/p/6085989.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值