-
条件
-
使用Spring boot、mybatis、mysql、分页插件实现以下功能
-
步骤
1.使用IDEA的Spring Initializr构建
2.模板选择web、
MyBatis、MySQL(以上步骤都不懂的自行百度)
3.在src下创建以下包名,目录如下:
4.修改resources目录下的application.yml
server:
port: 8080 #指定接口
servlet:
context-path: /springbootPagination #指定项目名
jsp:
init-parameters:
development: true #开启jsp模板开发模式
#配置jsp模板
spring:
mvc:
view:
suffix: .jsp
prefix: /
#整合mybatis相关配置
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/y2demo?serverTimezone=UTC
username: root
password: root
#配置mybatis
mybatis:
mapper-locations: classpath:com/p/mapper/*.xml
type-aliases-package: com.p.entity
#分页插件的配置
pagehelper:
#配置四項 hprs
helper-dialect: mysql #分页助手方言:mysql
params: count=countSql #为了支持 startPage(Object params) 方法
support-methods-arguments: true #支持通过 Mapper 接口参数来传递分页参数,默认值 false
reasonable: true #分页合理化参数,默认值为 false,页码不为负,不超总页码
#配置日志
logging:
level:
root: info #调整全局日志展示debug
com.p: debug #输出指定包的日志级别
5.在pom.xml的中加入以下配置
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.p</groupId>
<artifactId>springbootPagination</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springbootPagination</name>
<description>Demo project for Spring Boot</description>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!--开启热部署调试-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<!--druid-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.4</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>
<!--mybatis-spring-boot-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<!--jstl标准数据库 c标签库-->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!--pagehelper-spring-boot-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.7.5</version>
</plugin>
</plugins>
</build>
</project>
6.在pojo里添加实体类
public class Users {
private int id;
private String mobName;
private String userName;
...
}
7.在mapper里添加注解方式数据库操作接口
@Mapper
public interface UsersMapper {
@Select("select * from users where CONCAT(mobName,userName,nickname,phone) like CONCAT('%',#{name},'%')")
List<Users> getUsersList(String name);
@Insert("insert into users (id,mobName,userName,nickname,phone,register) " +
"values (#{id},#{mobName},#{userName},#{nickname},#{phone},#{register})")
public int add(Users users);
@Delete(" delete from users where id= #{id} ")
public void del(int id);
@Select("select * from users where id= #{id} ")
public Users getUser(int id);
@Update("update users set " +
"mobName = #{mobName}," +
"userName = #{userName}," +
"nickname = #{nickname}," +
"phone = #{phone}," +
"register = #{register} " +
"where id=#{id} ")
public int update(Users users);
}
8.在tools里添加分页工具类
import com.github.pagehelper.PageHelper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Properties;
@Configuration
public class PageHelperConfig {
@Bean
public PageHelper pageHelper() {
PageHelper pageHelper = new PageHelper();
Properties properties = new Properties();
properties.setProperty("offsetAsPageNum", "true");
properties.setProperty("rowBoundsWithCount", "true");
properties.setProperty("reasonable", "true");
pageHelper.setProperties(properties);
return pageHelper;
}
}
9.添加controller
@Controller
public class UserController {
@Resource
private UsersMapper usersMapper;
//添加页面
@RequestMapping("add")
public String add() {
return "add";
}
//查找(用于查询)
@RequestMapping("getUser")
public String getUser(int id, Model model) throws Exception {
Users Users = usersMapper.getUser(id);
model.addAttribute("Users", Users);
return "userShow";
}
...
}
10.在templates添加.jsp页面
PageHelper详解:分页工具地址:MyBatis 分页插件 PageHelper
PageHelper.startPage(int PageNum,int PageSize): 用来设置页面的位置和展示的数据条目数;
PageInfo pageInfo = new PageInfo(list):PageInfo用来封装页面信息,返回给前台界面
pageHelper中一些常见的参数:
PageInfo.list | 结果集 |
---|---|
PageInfo.pageNum | 当前页码 |
PageInfo.pageSize | 当前页面显示的数据条目 |
PageInfo.pages | 总页数 |
PageInfo.total | 数据的总条目数 |
PageInfo.prePage | 上一页 |
PageInfo.nextPage | 下一页 |
PageInfo.isFirstPage | 是否为第一页 |
PageInfo.isLastPage | 是否为最后一页 |
PageInfo.hasPreviousPage | 是否有上一页 |
PageHelper.hasNextPage | 是否有下一页 |