用ssm写一个完整的模糊查询带分页的
时间: 2023-11-04 14:04:24 浏览: 131
好的,下面是一个用SSM框架实现的模糊查询带分页的示例代码:
首先,我们需要在Mapper层编写SQL语句,例如:
```xml
<!-- 根据关键字模糊查询文章列表 -->
<select id="getArticleListByKeyword" parameterType="String" resultType="Article">
SELECT * FROM article WHERE title LIKE CONCAT('%', #{keyword}, '%') ORDER BY create_time DESC
</select>
```
然后在Service层中调用Mapper层的方法,例如:
```java
@Service
public class ArticleServiceImpl implements ArticleService {
@Autowired
private ArticleMapper articleMapper;
@Override
public List<Article> getArticleListByKeyword(String keyword, int pageNum, int pageSize) {
PageHelper.startPage(pageNum, pageSize); // 开启分页
return articleMapper.getArticleListByKeyword(keyword);
}
}
```
最后,在Controller层中调用Service层的方法并返回结果,例如:
```java
@Controller
public class ArticleController {
@Autowired
private ArticleService articleService;
@RequestMapping("/article/list")
public ModelAndView getArticleListByKeyword(@RequestParam("keyword") String keyword,
@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
List<Article> articleList = articleService.getArticleListByKeyword(keyword, pageNum, pageSize);
PageInfo<Article> pageInfo = new PageInfo<>(articleList);
ModelAndView modelAndView = new ModelAndView("articleList");
modelAndView.addObject("articleList", articleList);
modelAndView.addObject("pageInfo", pageInfo);
return modelAndView;
}
}
```
在上面的代码中,我们使用了PageHelper插件来实现分页,它可以自动拦截Mapper层的方法,并根据传入的参数进行分页处理。最后,我们将查询结果和分页信息封装到一个ModelAndView对象中并返回到前端页面,用于展示查询结果和分页导航条。
需要注意的是,在实际应用中,我们应该对输入的关键字进行安全过滤,以防止SQL注入等安全问题。同时,还应该对分页参数进行校验,以防止用户输入非法的页码或每页记录数等情况。
阅读全文