这一步是为了配置数据库
这里我使用的是常见的mysql+MyBatis+Druid的配置
使用mysql数据库,通过MyBatis连接(实质也是JDBC),使用Druid数据源监控。
1.继续在Pom.xml编写依赖包
<!--数据库 mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--数据库 mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<!--数据库的数据源 druid-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.21</version>
</dependency>
这里注意一点,druid这个依赖的是druid-spring-boot-starter,而不是druid,虽然两者都可以依赖,但druid的话是无法有内置监控页面的。
2.编写application.yml配置
spring:
port: 8080
#热部署
devtools:
restart:
enabled: true
additional-paths: src/main/java
#数据库配置
datasource:
#1.JDBC
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/sardines?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
username: root
password: root
druid:
#2.连接池配置
#初始化连接池的连接数量 大小,最小,最大
initial-size: 5
min-idle: 5
max-active: 20
#配置获取连接等待超时的时间
max-wait: 60000
#配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
time-between-eviction-runs-millis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
min-evictable-idle-time-millis: 30000
validation-query: SELECT 1 FROM DUAL
test-while-idle: true
test-on-borrow: true
test-on-return: false
# 是否缓存preparedStatement,也就是PSCache 官方建议MySQL下建议关闭 个人建议如果想用SQL防火墙 建议打开
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
filter:
stat:
merge-sql: true
slow-sql-millis: 5000
#3.基础监控配置
web-stat-filter:
enabled: true
url-pattern: /*
#设置不统计哪些URL
exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
session-stat-enable: true
session-stat-max-count: 100
stat-view-servlet:
enabled: true
url-pattern: /druid/*
reset-enable: true
#设置监控页面的登录名和密码
login-username: admin
login-password: 123456
allow: 127.0.0.1
#deny: 122.1.1.1
这里解释下配置,除了代码里的注释外,最后两行 allow: 127.0.0.1 表示允许127.0.0.1(本机访问),deny表示不允许访问的对象。
PS:数据库的url配置用自己的数据库路径,数据库用户密码也用自己的,我这边都是root(其实应该这句话不用说。。)
3.测试内置的监控页面(不是必须的)
我在上面配置中定的用户名密码是admin和123456,所以根据这个登录,然后就可以监控到很多sql操作方面的情况。druid的重点就在于可以监控限制,很方便。
4.导入lombok依赖包(非必须)
lombok是什么?
lombok可以说是用来写代码偷懒的一个包,它可以通过注解自动写无参构造器、封装、toString等等,可以让自己写起来更轻松
lombok未安装插件前需安装插件
File->Settings->Plugins 搜索lombok安装
安装完毕,File->Settings->Build,Execution,Doployment->Compiler->Annotation Processors ->打钩 Enable annotation processing
然后重启idea。
还是在POM.xml中依赖包
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
5.使用lombok(非必须,也可手动写封装)
6.使用mybatis写mapper类(两种方法)
首先创建mapper文件夹或者Dao文件夹,因为mapper属于MVC的Dao层
第一种:在启动类注解定义mapper包位置,该包下的interface都默认为mapper
第二种:在单个interface文件中设置
7.配置mybatis(还是在application.yml中)
#mybatis配置
mybatis:
#设置基本包 # 注意:对应实体类的路径
type-aliases-package: com.sardine.myproject.pojo
#告诉去哪找xml文件 #注意:一定要对应mapper映射xml文件的所在路径
mapper-locations: classpath:mybatis/mapper/*.xml
8.在mapper文件正式写sql语句
9.暂时不写业务层,直接写controller层写输出
实际页面执行
Druid监控
测试成功,无报错,在druid页面可查看sql信息,sql无问题