java连接mysql 的驱动包怎么选_SpringBoot系列:5、整合MySQL

关于MySQL数据的安装本文不做介绍。

1、整合MySQL

1.1 引入依赖

新建工程springboot-mysql,并引入依赖

org.springframework.boot spring-boot-starter-jdbcmysql mysql-connector-java runtime
  • mysql-connector-java:MySQL连接Java的驱动程序
  • spring-boot-starter-jdbc:支持通过JDBC连接数据库

1.2 添加数据库配置

在application.yml文件中添加如下的配置:

spring: datasource: #MySQL连接信息 url: jdbc:mysql://172.16.6.31:3306/test # 账号 username: root # 密码 password: 123456 # 驱动 driver-class-name: com.mysql.jdbc.Driver

1.3 设计表和实体

新建一张用户表t_user

-- ------------------------------ Table structure for t_user-- ----------------------------DROP TABLE IF EXISTS `t_user`;CREATE TABLE `t_user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户ID', `name` varchar(10) DEFAULT '' COMMENT '用户姓名', `password` varchar(32) DEFAULT '' COMMENT '密码', PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;INSERT INTO `t_user` VALUES (1, '小H', '123456');INSERT INTO `t_user` VALUES (2, '萧炎', '123456');

新建一个实体类User.java

public class User { // 主键 private String id; // 用户名 private String name; // 密码 private String password; // 省略getter、setter、toString}

1.4 单元测试

SpringbootMysqlApplicationTests.java

@RunWith(SpringRunner.class)@SpringBootTestpublic class SpringbootMysqlApplicationTests { @Resource private JdbcTemplate jdbcTemplate; @Test public void contextLoads() { String sql = "select id, name, password from t_user"; List users = jdbcTemplate.query(sql, new RowMapper() { @Override public User mapRow(ResultSet resultSet, int i) throws SQLException { User user = new User(); user.setId(resultSet.getString("id")); user.setName(resultSet.getString("name")); user.setPassword(resultSet.getString("password")); return user; } }); System.out.println("查询成功:" + users); }}

1.5 执行单元测试

8244e8916ad6a173040b65de956efb26.png

2 整合Druid

2.1 Druid概述

DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池,据说是目前最好的连接池。

2.2 引入依赖

pom.xml中引入依赖

com.alibaba druid 1.1.10

2.3 Druid配置

在application.yml添加以下配置

spring: datasource: #MySQL连接信息 url: jdbc:mysql://172.16.6.31:3306/test # 账号 username: root # 密码 password: 123456 # 驱动 driver-class-name: com.mysql.jdbc.Driver # 数据源类别 type: com.alibaba.druid.pool.DruidDataSource # 初始化大小、最小、最大 initialSize: 5 minIdle: 5 maxActive: 20 # 配置获取连接等待超时的时间,单位是毫秒 maxWait: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 timeBetweenEvictionRunsMillis: 60000 # 配置一个连接在池中最小生存的时间,单位是毫秒 minEvicableIdleTimeMillis: 300000 validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false # 打开PSCache,并且指定每个连接上PSCache的大小 poolPreparedStatements: true maxPoolPreparedStatementPerConnectionSize: 20 # 配置监控统计拦截的filters,去掉后监控界面的SQL无法统计,'wall'用于防火墙 filters: stat,wall,log4j # 通过connectProperties属性来打开mergeSql功能,慢SQL记录 connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 # 合并多个DruidDataSource的监控数据 useGlobalDataourceStat: true

2.4 开启监控功能

开启监控的方式:

  • 使用原生的Servlet、Filter方式,然后通过@ServletComponentScan启动扫描包进行处理
  • 使用代码注册Servlet和Filter的方式处理
  • 以第二种方式为例:
  • 新建一个DruidConfiguration.java
@Configurationpublic class DruidConfiguration { private static final Logger logger = LoggerFactory.getLogger(DruidConfiguration.class); private static final String DB_PREFIX = "spring.datasource"; @Bean public ServletRegistrationBean druidServlet() { logger.info("init Druid Servlet Configuration "); ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*"); // IP白名单 servletRegistrationBean.addInitParameter("allow
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值