默认选择的驱动包是基于MySQL8的,如果安装的不是MySQL8需要自己指定驱动版本。
在application.properties文件中添加连接MySQL需要的配置。
##mysql配置
##url
spring.datasource.url=jdbc:mysql://localhost:3306/db_test?useUnicode=true&characterEncoding=UTF-8
##用户名
spring.datasource.username=root
##密码
spring.datasource.password=root
##驱动
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
在自动生成的测试类中进行测试,需要添加以下代码。
@Autowired
private JdbcTemplate jdbcTemplate;
@Test
public void testMySql() {
String sql = "select * from user";
List<User> userList = jdbcTemplate.query(sql, new RowMapper<User>() {
@Override
public User mapRow(ResultSet resultSet, int i) throws SQLException {
User user = new User();
user.setUid(resultSet.getInt("uid"));
user.setUsername(resultSet.getString("username"));
user.setPassword(resultSet.getString("password"));
return user;
}
});
System.out.println("查询结果:");
for(User user : userList) {
System.out.println("user:" + user);
}
}
在刚开始建立项目的时候,我们选择了SpringWeb依赖,但是在整合MySQL并进行测试的时候并没有用到,在使用Druid监控功能的时候需要用到这个,如果没有添加这个依赖的话,在最后启动项目时会发现项目启动后会自动关闭,出现extShutdownHook错误,在pom文件中需要添加Servlet依赖,因为这里开启监控功能使用的是用代码注册Servlet和Filter。
在application.properties文件中增加以下配置。
##druid配置
### 数据源类别
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
### 初始化大小,最小,最大
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
### 配置获取连接等待超时的时间,单位是毫秒
spring.datasource.maxWait=60000
### 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
### 配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
### 打开PSCache,并且指定每个连接上PSCache的大小
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
### 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
spring.datasource.filters=stat,wall,log4j
### 通过connectProperties属性来打开mergeSql功能;慢SQL记录
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
### 合并多个DruidDataSource的监控数据
#spring.datasource.useGlobalDataSourceStat=true
建立Druid配置类DruidConfiguration。
@Configuration
public class DruidConfiguration {
@Bean
public ServletRegistrationBean druidStatViewServlet() {
//ServletRegistrationBean提供的类进行注册
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
//添加初始化参数
servletRegistrationBean.addInitParameter("allow","127.0.0.1");
//ip黑名单
servletRegistrationBean.addInitParameter("deny","192.168.1173");
//登陆查看账号和密码信息
servletRegistrationBean.addInitParameter("loginUsername","admin");
servletRegistrationBean.addInitParameter("loginPassword","123456");
//是否能够重置数据
servletRegistrationBean.addInitParameter("resetEnable","false");
return servletRegistrationBean;
}
@Bean
public FilterRegistrationBean druidStaFilter() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
//添加过滤规则
filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
return filterRegistrationBean;
}
}
访问http://localhost:8080/druid/index.html,输入用户名和密码以后就可以看到下面的结果。