文章目录
前言
上一篇文章中我们认识了SpringBoot,并学会了创建SpringBoot项目,今天这篇文章讲述一下SpringBoot怎么整合Mybatis-plus,进行数据库的相关操作。
传送门:https://gitee.com/huoqstudy/xiliu-admin.git
一、先初始化一个工程
参照上一篇文章初始化一个SpringBoot工程
二、添加依赖
代码如下(示例):
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.0</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.0</version>
</dependency>
<!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.1</version>
</dependency>
三、配置application.properties文件
代码如下(示例):
#服务端口
server.port=8081
#服务名
spring.application.name=xiliu-study-ucenter
#环境设置:dev、test、prod
spring.profiles.active=dev
#mysql数据库连接
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/xiliu_study_ucenter?characterEncoding=UTF-8&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root
#mybatis日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#逻辑删除
mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0
#全局日志级别
logging.level.root=info
四、创建代码生成器类并执行
在test目录创建如下代码,代码如下(示例):
package com.java.xiliu.study;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class XiliuStudyUcenterApplicationTests {
@Test
void contextLoads() {
// 1、创建代码生成器
AutoGenerator mpg = new AutoGenerator();
// 2、全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
//代码生成路径
gc.setOutputDir(projectPath + "/src/main/java");
gc.setAuthor("Helen");
gc.setOpen(false); //生成后是否打开资源管理器
gc.setFileOverride(false); //重新生成时文件是否覆盖
gc.setServiceName("%sService"); //去掉Service接口的首字母I
//gc.setIdType(IdType.ID_WORKER); //主键策略
gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型
gc.setSwagger2(true);//开启Swagger2模式
mpg.setGlobalConfig(gc);
// 3、数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/xiliu_study_ucenter");
dsc.setDriverName("com.mysql.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("root"); dsc.setDbType(DbType.MYSQL);
mpg.setDataSource(dsc);
// 4、包配置
PackageConfig pc = new PackageConfig();
pc.setModuleName("ucenter"); //模块名
pc.setParent("com.java.xiliu.study");
pc.setController("controller");
pc.setEntity("entity");
pc.setService("service");
pc.setMapper("mapper");
mpg.setPackageInfo(pc);
// 5、策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setInclude("ucenter_member", "ucenter_oper_log");
strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体时去掉表前缀
strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作
strategy.setRestControllerStyle(true); //restful api风格控制器
strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符
mpg.setStrategy(strategy);
// 6、执行
mpg.execute();
}
}
编写好后,执行该方法,生成代码。
五、编写Mybatis配置类
新建一个cofig目录,编写Mybatis配置类,代码如下(示例):
@Configuration
@MapperScan("com.java.xiliu.study.ucenter.mapper")
@EnableTransactionManagement
public class MybatisPlusConfig {
}
六、编写controller
在MemberController中添加如下方法,测试查询全部数据,代码如下(示例):
@Autowired
private MemberService memberService;
@GetMapping
public List<Member> list(){
return memberService.list(null);
}
七、启动项目
运行启动类,启动项目,启动成功后,访问刚编写的get方法,http://localhost:8081/ucenter/member,可看到页面输出了数据,说明整合成功。
八、配置Druid连接池
在开发项目中如果数据库选型为mysql,很大概率下连接池会使用druid。
1. 先添加依赖
<!-- druid连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.21</version>
</dependency>
2. 修改配置文件
由于初始化的项目默认生成的配置文件是properties后缀的文件,我们把文件后缀改为yml,这样编写druid配置更加的友好。
#服务端口
server:
port: 8081
#服务名
spring:
application:
name: xiliu-study-ucenter
#环境设置:dev、test、prod
profiles:
active: dev
# druid数据源配置
datasource:
type: com.alibaba.druid.pool.DruidDataSource
# 配置MySQL的驱动程序类
driver-class-name: com.mysql.jdbc.Driver
# 数据库连接地址(以MySql为例)
url: jdbc:mysql://localhost:3306/xiliu_study_ucenter?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
# 数据库对应的用户名
username: root
# 数据库对应的密码
password: root
druid:
# 配置监控统计拦截的filters,stat是sql监控,wall是防火墙(如果不添加则监控无效),添加log4j需要引入jar包
filters: stat,wall,config
# 连接池最大活跃连接数
max-active: 100
# 连接池初始化连接数量
initial-size: 1
# 配置获取连接等待超时的时间
max-wait: 60000
# 连接池最小空闲数
min-idle: 1
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 指定空闲连接检查、废弃连接清理、空闲连接池大小调整之间的操作时间间隔
time-between-eviction-runs-millis: 60000
# 指定一个空闲连接最少空闲多久后可被清除
min-evictable-idle-time-millis: 300000
# 连接是否有效的查询语句
validation-query: select 'x'
test-while-idle: true
test-on-borrow: false
test-on-return: false
#打开 PSCache,并且指定每个连接上 PSCache 的大小
pool-prepared-statements: true
max-open-prepared-statements: 50
max-pool-prepared-statement-per-connection-size: 20
# 配置 DruidStatFilter
web-stat-filter:
enabled: true #\u662F\u5426\u542F\u7528StatFilter\u9ED8\u8BA4\u503Ctrue
# 排除一些不必要的url,比如.js,/jslib/等
exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
# 过滤规则
url-pattern: /*
# 配置 DruidStatViewServlet
stat-view-servlet:
#手动重置监控数据
enabled: true
# IP白名单,没有配置或者为空,则允许所有访问
allow: 127.0.0.1
#IP黑名单,若白名单也存在,则优先使用
deny:
# 配置druid登录用户名、密码
login-username: admin
login-password: admin
# HTML 中 Reset All 按钮
reset-enable: true
#mybatis日志
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
#逻辑删除
db-config:
logic-delete-value: 1
logic-not-delete-value: 0
#全局日志级别
logging:
level:
root: info
3. 修改Mybatis配置类
添加数据库连接池的bean,这里结合Mybatis一起使用,直接写在Mybatis配置类里面。
/**
* druid注入
* @return dataSource
*/
@Bean(name = "dataSource")
@ConfigurationProperties(prefix = "spring.datasource.druid")
public DataSource dataSource() {
return DruidDataSourceBuilder.create().build();
}
4. 重启测试
重启项目之后,访问地址http://localhost:8081/druid/login.html,登录配置的账号密码:admin/admin,可看到Druid首页,说明配置成功。
总结
好了,以上就是今天要讲的内容。本文主要介绍了SpringBoot如何整合Mybatis-plus,以及如何配置Druid数据库连接池,希望对你能有所帮助!
感谢大家的阅读,如果有什么疑问或者建议,欢迎评论区指正,感谢~