连接池的实现:Druid实现。
目录
(1)创建druid-config.properties文件
(1)【initialSize=10】和【maxActive=20】属性设置
(2)【initialSize=10】默认连接数不够的话,会启动最大连接数【maxActive=20】属性
(3)如果程序中数据库连接数的需求超过最大连接数,那些没有分配到的程序会等待
(4)【initialSize】和【maxActive】建议设置相同值(重要!!!)
1.Druid下载
总之,在Druid的Github主页上,各种点点总能找到对应的下载链接。
https://repo1.maven.org/maven2/com/alibaba/druid/为druid的下载链接;
2.将Druid的jar包添加进工程
然后,将Druid的jar包加入到工程依赖中;
这儿没有勾选,就直接点击OK了,勾选与否的区别是什么???待解答
说明:
这里的Dependencies是指这里勾选引入的依赖包可以在当前Module下使用。查看下lib目录下对应的jar包前是否有个小箭头,如果有,也是表示将该jar包添加到项目中,所以这里不勾选也是可以使用的;
emm,个人感觉,以后是是勾选上吧。。。。
3.Druid连接池:初体验案例
(1)创建druid-config.properties文件
这个配置文件的名字可以改~~~
首先,在src下创建一个全新的properties属性文件:druid-config.properties文件。用来保存JDBC运行时必要的信息。
然后,需要在druid-config.properties属性文件中,配置JDBC的信息;
(以前的JDBC的代码都写在了java代码中,Druid的配置为什么不也写在java代码中,而是要写在属性文件中?)Druid为了让程序程序拥有更好的可维护性;试想一下,如果将用户名、密码、连接字符串都存放到java源代码中,那么每一次更改后,都需要对源代码进行重新编译、重新部署才可以生效;;;而如果放在druid-config.properties属性文件这个配置文件中,其本身就是一个纯粹的文本文件,所以当需要修改数据库信息的时候,直接修这个文件,然后重启应用就能生效了。
在druid-config.properties属性文件配置:可配置项;
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/imooc?useSSL=false&useUincode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username=root
password=12345
JDBC的信息都放在了配置文件中,那么如何利用Druid对这些配置的信息进行加载和读取?
(2)编写DruidSample类
DruidSample类:(1)加载属性文件;(2)获取DataSource数据源对象;(3)创建数据库连接。
package com.imooc.jdbc.sample;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.imooc.jdbc.common.DbUtils;
import javax.sql.DataSource;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.UnsupportedEnco