Spring Boot+mybatis+thymeleaf集成通用mapper分页查询

来源:互联网 发布:淘宝网的性用品有用吗 编辑:程序博客网 时间:2024/04/28 06:33

spring boot 1.4.2.RELEASE+Thymeleaf+mybatis 集成通用maper,与分页插件:


  • spring boot 142RELEASEThymeleafmybatis 集成通用maper与分页插件
    • pomxml
    • UserPojo
    • UserService
    • UserController
    • 前台模板页

pom.xml

<parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>1.4.2.RELEASE</version>        <relativePath /> <!-- lookup parent from repository -->    </parent>    <properties>        <java.version>1.8</java.version>        <!-- 依赖版本 -->        <mybatis.version>3.4.0</mybatis.version>        <mybatis.spring.version>1.3.0</mybatis.spring.version>        <mapper.version>3.3.9</mapper.version>        <pagehelper.version>4.1.6</pagehelper.version>    </properties>    <dependencies>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-thymeleaf</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-jdbc</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-aop</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>        </dependency>        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>        </dependency>        <dependency>            <groupId>com.fasterxml.jackson.core</groupId>            <artifactId>jackson-core</artifactId>        </dependency>        <dependency>            <groupId>com.fasterxml.jackson.core</groupId>            <artifactId>jackson-databind</artifactId>        </dependency>        <dependency>            <groupId>com.fasterxml.jackson.datatype</groupId>            <artifactId>jackson-datatype-joda</artifactId>        </dependency>        <dependency>            <groupId>com.fasterxml.jackson.module</groupId>            <artifactId>jackson-module-parameter-names</artifactId>        </dependency>        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>druid</artifactId>            <version>1.0.11</version>        </dependency>        <!--Mybatis -->        <dependency>            <groupId>org.mybatis</groupId>            <artifactId>mybatis</artifactId>            <version>${mybatis.version}</version>        </dependency>        <dependency>            <groupId>org.mybatis</groupId>            <artifactId>mybatis-spring</artifactId>            <version>${mybatis.spring.version}</version>        </dependency>        <!-- Mybatis Generator -->        <dependency>            <groupId>org.mybatis.generator</groupId>            <artifactId>mybatis-generator-core</artifactId>            <version>1.3.2</version>            <scope>compile</scope>            <optional>true</optional>        </dependency>        <!--分页插件 -->        <dependency>            <groupId>com.github.pagehelper</groupId>            <artifactId>pagehelper</artifactId>            <version>${pagehelper.version}</version>        </dependency>        <!--通用Mapper -->        <dependency>            <groupId>tk.mybatis</groupId>            <artifactId>mapper</artifactId>            <version>${mapper.version}</version>        </dependency>    </dependencies>    <build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>                <dependencies>                    <dependency>                        <groupId>org.springframework</groupId>                        <artifactId>springloaded</artifactId>                        <version>1.2.5.RELEASE</version>                    </dependency>                </dependencies>            </plugin>        </plugins>    </build>

UserPojo

@Table(name="user")public class User {    @Id    @GeneratedValue(strategy = GenerationType.IDENTITY)    private Long id;    private String username;    private Date birthday;    private String email;    public Long getId() {        return id;    }    public void setId(Long id) {        this.id = id;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public Date getBirthday() {        return birthday;    }    public void setBirthday(Date birthday) {        this.birthday = birthday;    }    public String getEmail() {        return email;    }    public void setEmail(String email) {        this.email = email;    }}

UserService

@Service@Transactionalpublic class UserService {    @Autowired    private UserMapper userMapper;    @Transactional(readOnly = true)    public PageInfo<User> findAll(String username, Date birthday, Integer page, Integer pageSize) {        PageHelper.startPage(page, pageSize);        Example example = new Example(User.class);        if (!StringUtils.isEmpty(username)) {            example.createCriteria().andEqualTo("username", username);        }        if (birthday != null) {            example.createCriteria().andEqualTo("birthday", birthday);        }        List<User> users = userMapper.selectByExample(example);        return new PageInfo<>(users);    }}

UserController

@Controllerpublic class UserController {    @Autowired    private UserService userService;    @RequestMapping("/user")    public String index(Model model, @RequestParam(required = false) String username,@RequestParam(required = false) Date birthday, @RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "3") Integer pageSize) {        PageInfo<User> pageInfo = userService.findAll(username, birthday, pageNum, pageSize);        //获得当前页        model.addAttribute("pageNum", pageInfo.getPageNum());        //获得一页显示的条数        model.addAttribute("pageSize", pageInfo.getPageSize());        //是否是第一页        model.addAttribute("isFirstPage", pageInfo.isIsFirstPage());        //获得总页数        model.addAttribute("totalPages", pageInfo.getPages());        //是否是最后一页        model.addAttribute("isLastPage", pageInfo.isIsLastPage());        model.addAttribute("users", pageInfo.getList());        return "index";    }}

前台模板页

<table class="table table-hover" style="border-collapse: 0"            width="50%">            <thead>                <tr>                    <th>id</th>                    <th>username</th>                    <th>birthday</th>                    <th>email</th>                </tr>            </thead>            <tr th:each="user : ${users}">                <th th:text="${user.id}"></th>                <th th:text="${user.username}"></th>                <th th:text="${#dates.format(user.birthday, 'yyyy-MM-dd')}"></th>                <th th:text="${user.email}"></th>            </tr>        </table>        <nav>            <ul class="pagination">                <li><a href="">&laquo;</a></li>                <li>                    <a th:if="${not isFirstPage}" th:href="@{${'/user'}(pageNum=${pageNum-1},pageSize=${pageSize})}">Previous</a>                    <a th:if="${isFirstPagee}" href="javascript:void(0);">Previous</a>                </li>                <li th:each="pageNo : ${#numbers.sequence(1, totalPages)}">                    <a th:if="${pageNum eq pageNo}" href="javascript:void(0);">                         <span th:text="${pageNo}"></span>                    </a>                    <a th:if="${not (pageNum eq pageNo)}" th:href="@{${'/user'}(pageNum=${pageNo},size=${pageSize})}">                        <span th:text="${pageNo}"></span>                    </a>                </li>                <li>                        <a th:if="${not isLastPage}" th:href="@{${'/user'}(pageNum=${pageNum+1},size=${pageSize})}">Next</a>                        <a th:if="${isLastPage}" href="javascript:void(0);">Next</a>                    </li>                <li><a href="#">&raquo;</a></li>            </ul>        </nav>
1 0
原创粉丝点击