Skip to content

Commit a9573fb

Browse files
author
cicadasmile
committed
SpringBoot2.0 基础案例(10):整合Mybatis框架,集成PageHelper分页
1 parent 2aceea9 commit a9573fb

15 files changed

+1930
-0
lines changed

README.md

+3
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ SpringBoot2.0 基础案例(08):集成Redis数据库,实现缓存管理</a><br/
2727
<a href="https://mp.weixin.qq.com/s?__biz=MzU4Njg0MzYwNw==&mid=2247483840&idx=1&sn=f5f86033cc19859331bb120140051ce2&chksm=fdf45578ca83dc6eb40297b148001c1cb72820924fbfd7df8715979b6a6d6eb843f64de03b9e&token=935921302&lang=zh_CN#rd">
2828
SpringBoot2.0 基础案例(09):集成JPA持久层框架,简化数据库操作</a><br/>
2929

30+
<a href="">
31+
SpringBoot2.0 基础案例(10):整合Mybatis框架,集成PageHelper分页</a><br/>
32+
3033
持续更新...<br/>
3134

3235
# 项目简介

node10-boot-mybatis/pom.xml

+77
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<!-- SpringBoot版本 -->
6+
<parent>
7+
<groupId>org.springframework.boot</groupId>
8+
<artifactId>spring-boot-starters</artifactId>
9+
<version>2.1.3.RELEASE</version>
10+
</parent>
11+
<modelVersion>4.0.0</modelVersion>
12+
<groupId>com.boot.mybatis</groupId>
13+
<artifactId>node10-boot-mybatis</artifactId>
14+
<packaging>jar</packaging>
15+
16+
<dependencies>
17+
<dependency>
18+
<groupId>org.springframework.boot</groupId>
19+
<artifactId>spring-boot-starter-web</artifactId>
20+
</dependency>
21+
<dependency>
22+
<groupId>org.springframework.boot</groupId>
23+
<artifactId>spring-boot-starter-test</artifactId>
24+
<scope>test</scope>
25+
</dependency>
26+
<!-- 数据库依赖 -->
27+
<dependency>
28+
<groupId>mysql</groupId>
29+
<artifactId>mysql-connector-java</artifactId>
30+
<version>5.1.21</version>
31+
</dependency>
32+
<dependency>
33+
<groupId>com.alibaba</groupId>
34+
<artifactId>druid-spring-boot-starter</artifactId>
35+
<version>1.1.13</version>
36+
</dependency>
37+
<!-- JDBC 依赖 -->
38+
<dependency>
39+
<groupId>org.springframework.boot</groupId>
40+
<artifactId>spring-boot-starter-jdbc</artifactId>
41+
</dependency>
42+
<!-- mybatis依赖 -->
43+
<dependency>
44+
<groupId>org.mybatis.spring.boot</groupId>
45+
<artifactId>mybatis-spring-boot-starter</artifactId>
46+
<version>1.3.2</version>
47+
</dependency>
48+
<!-- mybatis的分页插件 -->
49+
<dependency>
50+
<groupId>com.github.pagehelper</groupId>
51+
<artifactId>pagehelper</artifactId>
52+
<version>4.1.6</version>
53+
</dependency>
54+
</dependencies>
55+
56+
<!-- 项目构建 -->
57+
<build>
58+
<finalName>${project.artifactId}</finalName>
59+
<resources>
60+
<resource>
61+
<directory>src/main/resources</directory>
62+
<filtering>true</filtering>
63+
</resource>
64+
</resources>
65+
<plugins>
66+
<plugin>
67+
<groupId>org.apache.maven.plugins</groupId>
68+
<artifactId>maven-compiler-plugin</artifactId>
69+
<version>2.3.2</version>
70+
<configuration>
71+
<source>1.8</source>
72+
<target>1.8</target>
73+
</configuration>
74+
</plugin>
75+
</plugins>
76+
</build>
77+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.boot.mybatis;
2+
3+
import org.mybatis.spring.annotation.MapperScan;
4+
import org.springframework.boot.SpringApplication;
5+
import org.springframework.boot.autoconfigure.SpringBootApplication;
6+
7+
@SpringBootApplication
8+
@MapperScan("com.boot.mybatis.mapper")
9+
public class MyBatisApplication {
10+
public static void main(String[] args) {
11+
SpringApplication.run(MyBatisApplication.class,args) ;
12+
}
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
package com.boot.mybatis.config;
2+
3+
import com.alibaba.druid.pool.DruidDataSource;
4+
import com.alibaba.druid.support.http.StatViewServlet;
5+
import com.alibaba.druid.support.http.WebStatFilter;
6+
import org.slf4j.Logger;
7+
import org.slf4j.LoggerFactory;
8+
import org.springframework.beans.factory.annotation.Autowired;
9+
import org.springframework.beans.factory.annotation.Value;
10+
import org.springframework.boot.web.servlet.FilterRegistrationBean;
11+
import org.springframework.boot.web.servlet.ServletRegistrationBean;
12+
import org.springframework.context.annotation.Bean;
13+
import org.springframework.context.annotation.Configuration;
14+
import org.springframework.jdbc.core.JdbcTemplate;
15+
16+
/**
17+
* Druid数据库连接池配置文件
18+
*/
19+
@Configuration
20+
public class DruidConfig {
21+
private static final Logger logger = LoggerFactory.getLogger(DruidConfig.class);
22+
23+
@Value("${spring.datasource.druid.url}")
24+
private String dbUrl;
25+
26+
@Value("${spring.datasource.druid.username}")
27+
private String username;
28+
29+
@Value("${spring.datasource.druid.password}")
30+
private String password;
31+
32+
@Value("${spring.datasource.druid.driverClassName}")
33+
private String driverClassName;
34+
35+
@Value("${spring.datasource.druid.initial-size}")
36+
private int initialSize;
37+
38+
@Value("${spring.datasource.druid.max-active}")
39+
private int maxActive;
40+
41+
@Value("${spring.datasource.druid.min-idle}")
42+
private int minIdle;
43+
44+
@Value("${spring.datasource.druid.max-wait}")
45+
private int maxWait;
46+
47+
@Value("${spring.datasource.druid.pool-prepared-statements}")
48+
private boolean poolPreparedStatements;
49+
50+
@Value("${spring.datasource.druid.max-pool-prepared-statement-per-connection-size}")
51+
private int maxPoolPreparedStatementPerConnectionSize;
52+
53+
@Value("${spring.datasource.druid.time-between-eviction-runs-millis}")
54+
private int timeBetweenEvictionRunsMillis;
55+
56+
@Value("${spring.datasource.druid.min-evictable-idle-time-millis}")
57+
private int minEvictableIdleTimeMillis;
58+
59+
@Value("${spring.datasource.druid.max-evictable-idle-time-millis}")
60+
private int maxEvictableIdleTimeMillis;
61+
62+
@Value("${spring.datasource.druid.validation-query}")
63+
private String validationQuery;
64+
65+
@Value("${spring.datasource.druid.test-while-idle}")
66+
private boolean testWhileIdle;
67+
68+
@Value("${spring.datasource.druid.test-on-borrow}")
69+
private boolean testOnBorrow;
70+
71+
@Value("${spring.datasource.druid.test-on-return}")
72+
private boolean testOnReturn;
73+
74+
@Value("${spring.datasource.druid.filters}")
75+
private String filters;
76+
77+
@Value("{spring.datasource.druid.connection-properties}")
78+
private String connectionProperties;
79+
80+
/**
81+
* Druid 连接池配置
82+
*/
83+
@Bean //声明其为Bean实例
84+
public DruidDataSource dataSource() {
85+
DruidDataSource datasource = new DruidDataSource();
86+
datasource.setUrl(dbUrl);
87+
datasource.setUsername(username);
88+
datasource.setPassword(password);
89+
datasource.setDriverClassName(driverClassName);
90+
datasource.setInitialSize(initialSize);
91+
datasource.setMinIdle(minIdle);
92+
datasource.setMaxActive(maxActive);
93+
datasource.setMaxWait(maxWait);
94+
datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
95+
datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
96+
datasource.setMaxEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
97+
datasource.setValidationQuery(validationQuery);
98+
datasource.setTestWhileIdle(testWhileIdle);
99+
datasource.setTestOnBorrow(testOnBorrow);
100+
datasource.setTestOnReturn(testOnReturn);
101+
datasource.setPoolPreparedStatements(poolPreparedStatements);
102+
datasource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);
103+
try {
104+
datasource.setFilters(filters);
105+
} catch (Exception e) {
106+
logger.error("druid configuration initialization filter", e);
107+
}
108+
datasource.setConnectionProperties(connectionProperties);
109+
return datasource;
110+
}
111+
/**
112+
* JDBC操作配置
113+
*/
114+
@Bean(name = "dataOneTemplate")
115+
public JdbcTemplate jdbcTemplate (@Autowired DruidDataSource dataSource){
116+
return new JdbcTemplate(dataSource) ;
117+
}
118+
119+
/**
120+
* 配置 Druid 监控界面
121+
*/
122+
@Bean
123+
public ServletRegistrationBean statViewServlet(){
124+
ServletRegistrationBean srb =
125+
new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
126+
//设置控制台管理用户
127+
srb.addInitParameter("loginUsername","root");
128+
srb.addInitParameter("loginPassword","root");
129+
//是否可以重置数据
130+
srb.addInitParameter("resetEnable","false");
131+
return srb;
132+
}
133+
@Bean
134+
public FilterRegistrationBean statFilter(){
135+
//创建过滤器
136+
FilterRegistrationBean frb =
137+
new FilterRegistrationBean(new WebStatFilter());
138+
//设置过滤器过滤路径
139+
frb.addUrlPatterns("/*");
140+
//忽略过滤的形式
141+
frb.addInitParameter("exclusions",
142+
"*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
143+
return frb;
144+
}
145+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package com.boot.mybatis.controller;
2+
3+
import com.boot.mybatis.entity.ImgInfo;
4+
import com.boot.mybatis.entity.ImgInfoExample;
5+
import com.boot.mybatis.service.ImgInfoService;
6+
import com.github.pagehelper.PageInfo;
7+
import org.springframework.web.bind.annotation.RequestMapping;
8+
import org.springframework.web.bind.annotation.RestController;
9+
import javax.annotation.Resource;
10+
import java.util.Date;
11+
import java.util.List;
12+
13+
@RestController
14+
public class ImgInfoController {
15+
16+
@Resource
17+
private ImgInfoService imgInfoService ;
18+
19+
// 增加
20+
@RequestMapping("/insert")
21+
public int insert(){
22+
ImgInfo record = new ImgInfo() ;
23+
record.setUploadUserId("A123");
24+
record.setImgTitle("博文图片");
25+
record.setSystemType(1) ;
26+
record.setImgType(2);
27+
record.setImgUrl("https://avatars0.githubusercontent.com/u/50793885?s=460&v=4");
28+
record.setLinkUrl("https://avatars0.githubusercontent.com/u/50793885?s=460&v=4");
29+
record.setShowState(1);
30+
record.setCreateDate(new Date());
31+
record.setUpdateDate(record.getCreateDate());
32+
record.setRemark("知了");
33+
record.setbEnable("1");
34+
return imgInfoService.insert(record) ;
35+
}
36+
37+
// 组合查询
38+
@RequestMapping("/selectByExample")
39+
public List<ImgInfo> selectByExample(){
40+
ImgInfoExample example = new ImgInfoExample() ;
41+
example.createCriteria().andRemarkEqualTo("知了") ;
42+
return imgInfoService.selectByExample(example);
43+
}
44+
45+
// 修改
46+
@RequestMapping("/updateByPrimaryKeySelective")
47+
public int updateByPrimaryKeySelective(){
48+
ImgInfo record = new ImgInfo() ;
49+
record.setImgId(11);
50+
record.setRemark("知了一笑");
51+
return imgInfoService.updateByPrimaryKeySelective(record);
52+
}
53+
54+
// 分页查询
55+
@RequestMapping("/queryPage")
56+
public PageInfo<ImgInfo> queryPage () {
57+
int page = 1;
58+
int pageSize = 6 ;
59+
return imgInfoService.queryPage(page,pageSize);
60+
}
61+
62+
// 删除
63+
@RequestMapping("/deleteByPrimaryKey")
64+
public int deleteByPrimaryKey() {
65+
Integer imgId = 11 ;
66+
return imgInfoService.deleteByPrimaryKey(imgId);
67+
}
68+
69+
}

0 commit comments

Comments
 (0)