开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第5天,点击查看活动详情
1.新增Book控制器
@Controller
public class BookController {
@Resource
private CategoryService categoryService;
@GetMapping("/")
public ModelAndView showIndex() {
ModelAndView mav = new ModelAndView("/index");
List<Category> categoryList = categoryService.selectAll();
mav.addObject("categoryList", categoryList);
return mav;
}
}
代码说明:
- @Controller:声明该控制器
- @Resource private CategoryService categoryService:引入categoryService
- ModelAndView mav = new ModelAndView("/index"):初始化ModelAndView,并且设置对应的页面
- mav.addObject("categoryList", categoryList):查询的结果复制给mav对象
2.静态页面动态赋值
<#list categoryList as category>
<a style="cursor: pointer" data-category="${category.categoryId}"
class="text-black-50 font-weight-bold category">
${category.categoryName}</a>
<#if category_has_next>|</#if>
</#list>
代码说明:
- #list:说明该对象是数组
- categoryList as category:list对象进行循环遍历,每个对象为category
- ${category.categoryId}:采用对象.属性名,获取对象的值
- <#if category_has_next>:判断是否为最后一个元素
3.把依赖发布到ouput中
4.重启tomcat
访问http://localhost:8080/
分类信息已经动态展示出来了
分页查询数据
1.新增Book实体类
@TableName("book")
public class Book {
@TableId(type = IdType.AUTO)
private Long bookId;
private String bookName;
private String subTitle;
private String author;
private String cover;
private String description;
private Long categoryId;
private Float evaluationScore;
private Long evaluationQuantity;
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
//创建对应的geter和setter方法
}
2.新增BookMapper接口
package com.imooc.reader.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.imooc.reader.entity.Book;
public interface BookMapper extends BaseMapper<Book> {
}
代码说明:
- extends BaseMapper<Book>:接口类BookMapper继承BaseMapper并且设置对应的泛型为Book
3.新增bookMapper.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.imooc.reader.mapper.BookMapper">
</mapper>
4.定义BookService类
package com.imooc.reader.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.imooc.reader.entity.Book;
public interface BookService {
public IPage<Book> paging(Integer page,Integer rows);
}
代码说明:
- IPage<Book>:分页对象
- paging(Integer page,Integer rows):分页方法,需要传递传递当前页数和每一页请求数量
5.实现BookServiceImpl
package com.imooc.reader.service.impl;
@Service("bookService")
@Transactional(propagation = Propagation.NOT_SUPPORTED,readOnly = true)
public class BookServiceImpl implements BookService {
@Resource private BookMapper bookMapper;
@Override
public IPage<Book> paging(Integer page, Integer rows) {
Page<Book> p = new Page<Book>(page,rows);
QueryWrapper<Book> queryWrapper = new QueryWrapper<Book>();
IPage<Book> pageObject = bookMapper.selectPage(p,queryWrapper);
return pageObject;
}
}
代码说明:
- @Resource private BookMapper bookMapper;:引用bookMapper
- Page<Book> p = new Page<Book>(page,rows);:设置分页对象,并且传入两个参数
- QueryWrapper<Book> queryWrapper = new QueryWrapper<Book>();:设置查询条件
- IPage<Book> pageObject = bookMapper.selectPage(p,queryWrapper);