前言
本文是在学springboot时,整合mybatis+Druid,因此把数据库层面的知识又学习了一遍
整个内容是跟着别人的博客做的,但是在学习的过程中发生了不少问题,可能是版本的差别,因此,我这篇文章是对下面博客内容的一个补充
cloudlandboy.github.io/myNote/#/ba…
1、目录结构

2、数据库创建两张表

下面是两张表的sql代码
DROP TABLE IF EXISTS `department`;
CREATE TABLE `department` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`departmentName` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `employee`;
CREATE TABLE `employee` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`lastName` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`gender` int(2) DEFAULT NULL,
`d_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
3、代码上的改动
1、数据库建表
数据库不用他给的方式建表,自己在数据库直接建表:博客中,在resource下创建了两个sql文件,加上application.yml中配置如下,相当于项目启动的时候,自动在数据库中创建两张表,没有必要。
这里,我们直接自己创建两张表,而不使用博客中自动创建的功能
schema:
- classpath:department.sql
- classpath:employee.sql
2、application.yml
同样在application.yml中,博客中对于连接的配置如下。博客使用 172.16.145.137 是因为,其连接的数据库在虚拟机中的数据库,IP不是本机IP。
url: jdbc:mysql://172.16.145.137:3306/springboot
而我们在这里使用本机IP,不搞虚拟机,因此改为 localhost
url: jdbc:mysql://localhost:3306/springboot
同时,在后面加上
?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
如果不加这一串代码,会因为时区问题和乱码问题,各种报错。
这段代码总汇如下
url: jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
3、DepartmentController
DepartmentController 这里会报错。这是正常的现象,因为DepartmentMapper 使用的是 @Mapper ,在项目启动后才会进行扫描,在程序编码阶段,找不到是正常的。

4、druid的连接池属性
5、druid的内部监控
通过 http://localhost:8080/druid/index.html 可以实现对数据库的监控

关于 stat-view-servlet 是否开启监控功能,登录的网址、账号、密码,网址的白名单,都在 application.yml 中进行设置
stat-view-servlet:
enabled: true
url-pattern: /druid/*
login-username: admin
login-password: root
allow: 127.0.0.1
同样的,web-stat-filter 的一系列属性也可以在 application.yml 中进行设置
web-stat-filter:
enabled: true
url-pattern: /*
exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
stat-view-servlet 、web-stat-filter 更多的属性参考 liaocan.top/article/spr…
关于白名单、黑名单: blog.csdn.net/u014633144/…