一个企业项目中最重要的部分那就是数据库了,对数据库的连接,读写是重中之重。在SpringBoot中数据库怎么连接呢?
数据库的连接
这里以MySql为例,还不会用MySql数据库的童鞋,可以看我之前的博客,数据库相关。
第一步, 我们首先在pom.xml中添加jdbc相关的启动器。
1 | <!--jdbc启动器--> |
第二步, 在配置文件中配置连接数据库的信息:
1 | spring: |
添加如上信息,就基本上完成了。测试一下连接就可以了。在我们的测试类中添加如下代码,看看打印的数据即可。
1 | package com.haichenyi.springbootjdbc; |
我们这里是测试数据库是否连接成功,我们才获取的这个连接,打印出来,我们项目里面实际操作数据库的时候,不需要我们获取这个连接,然后通过这个连接再去操作数据库。这是不需要,MyBatis通过Mapping注解直接操作数据库,我们只用写sql语句就可以了。
Druid连接数据库
DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池,据说是目前最好的连接池。
上面的配置继续保留。
第一步: 我们在pom.xml里面添加druid的依赖:
1 | <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> |
第二步: 在yml文件中添加如下代码:
1 | spring: |
这样,就可以了。继续运行刚才的测试方法,你会发现,打印数据里面数据源已经变成了DruidDataSource。
你如果是debug运行的,并且,你的断点打在connection那里,你会发现,我们yml文件中的补充配置,没起作用,是为什么呢?
我们按住CTRL,鼠标左键点补充配置里面的任意一个变量,都点不动,我们点上面的type,url等等,都能点,我们点过去看,我们会发现跳到了 DataSourceProperties 。这个类,顾名思义这是数据源配置文件类。我们大致看一下这个类的代码:
用红色框框,框出来的地方是不是很眼熟?
首先,我们先看注解 @ConfigurationProperties, 这个注解就是表示这个类是配置类,然后,我们看括号里面的参数 prefix, 顾名思义:前缀,前置代码。
如上图,上面的红色框框的内容,就由prefix决定,下面红色框框的内容,就由这个类的变量决定。我们上面的补充设置不起作用,就是因为这个配置文件里面没有这些变量,SpringBoot识别不了,所以,不起作用。SpringBoot不是万能的,它配置了的东西,可以识别,没有配置的,识别不了。
怎么样让上面的补充配置起作用呢?有多种方式:
第一种方式如下: 简单粗暴,添加一个配置类即可
1 | package com.haichenyi.springbootjdbc.config; |
这个方式就相当于,把我们上面的这个 DataSourceProperties配置类,换成了 DruidDataSource类。
第二种方式如下: 比较麻烦,也不算特别麻烦:说白了就是加载局部配置。
首先,在resources目录下,新建一个jdbc.properties文件
1 | #账号 |
就是把我们刚才在全局配置中配置的信息,在专门的jdbc的配置文件中配置一遍。然后,修改我们的JdbcConfig类。如下:
1 | package com.haichenyi.springbootjdbc.config; |
就是加载配置文件,然后在DataSource里面赋值。这样,就可以了。
Druid后台监控
之所以用Druid连接池,还有很大一部分原因就是它的监控功能。它能很好的监控DB连接池和SQL语句的执行情况。在上面的JdbcConfig类中添加如下两个方法即可。
1 | /** |
注释写的很清楚了,控制台怎么访问呢? http://localhost:8080/druid。访问控制台