今天我们讲一讲数据库连接池,数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。
简单来说,这个技术可以在项目开发中不用每个项目都在数据库连接类中去写连接的代码,只需要我们自己根据数据源的名字去数据库连接池中拿就好了,简化了代码,也提高了性能。
下面我们就讲讲如何配置数据库连接池:
服务器我们以Tomcat9.0为例,数据库就以MySQL5.7为例
1.打开Tomcat9.0文件夹,找到conf文件目录,如下图:
2.打开该目录下的context.xml文件和web.xml文件
3.启动Tomcat服务,在浏览器地址栏输入localhost:8080,进入Tomcat主页,再点击Tomcat9.0 Documentation如下图:
4.再点击图中JNDI Resources
5.找到图中所示示例代码:
其中name属性是数据源的名字,type是类型,username为数据库用户名,password为数据库密码,driverClassName和url需要使用自己的数据库连接地址
地址如图中所示。将上述代码写到context.xml文件中即可。
6.再找到图中所示代码:
<description></description>标签是对此数据资源的描述
<res-ref-name></res-ref-name>标签内放的是在context.xml中配置的数据源名字,type和auth也与数据源保持一致即可。
7.再将连接MySQL的jar包直接放入Tomcat服务器的lib文件夹下,如图:
放入jar包后,如果在web项目中使用的是数据库连接池,便不需要再在项目中导入jar包
8.测试:
将此代码写入数据库连接类即可获得Connection连接对象,但是因为我们将连接池配置在了Tomcat中,所以直接在Java环境中测试是行不通的,我们需要运行在Tomcat中才能知道是否连接成功,为了方便,我们将代码直接写在jsp页面测试
<%
Context context=new InitialContext();
Context envContext=(Context)context.lookup("java:/comp/env");
DataSource dataSource=(DataSource)envContext.lookup("jdbc/TestDB");
Connection conn=dataSource.getConnection();
out.print(conn);
%>
然后运行此jsp页面,如果打印出了地址,说明连接成功。
希望能对您有所帮助