连接池
1. 什么是连接池
数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。
2. 为什么要使用连接池?
数据库连接是一种关键的有限的昂贵的资源,一个数据库连接对象均对应一个数据库连接,每次操作都打开一个连接,使用完都关闭连接,这样造成系统的性能损耗。
3.连接池的工作原理
将数据库连接作为对象存储在内存中,当用户需要访问数据库时,从连接池中取出一个已建立的连接对象。使用完毕后将连接放回连接池中,以供下一个请求访问使用。
4.连接池的思路
JDNI–>DataSoure–>Connection–>连接池
5.使用Tomcat数据源
1. 数据源(DataSoure)
(1)javax.sql.DataSource接口负责简历与数据库的连接
(2)由Tomcat提供,将连接保存在连接池中
1. 数据源(DataSoure)的使用
(1)数据源用来连接数据库,获得连接(Connection)对象
(2)连接池来用管理连接(Connection)对象
(3)在程序中使用JNDI获取数据源
4.连接池的方法
方法一:
1.将以下代码复制至tomcat/conf下 的context.xml文件里
<Context>
<Environment name="tjndi" value="hello JNDI" type="java.lang.String"/>
</Context>
获取连接的方法: 代码演示
Context context=new InitialContext();
context.lookup("java:comp/env/tjndi");
方法二:
1.将以下代码复制至tomcat/conf下 的context.xml文件里
<Context>
<Resource name="jdbc/news" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000" username="newsu"
password="123456" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/newsmanagersystem?
useUnicode=true&characterEncoding=utf-8" />
</Context>
2.将以下代码复制至项目 的WEB-INF/web.xml文件里
<resource-ref>
<res-ref-name>jdbc/news</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
获取连接的方法: 代码演示
// 初始化上下文
Context context = new InitialContext();
// 固定写法 获得数据源对象
Context ctx = (Context) context.lookup(“java:comp/env”);
// 通过DataSource数据源,获得数据库连接
DataSource ds = (DataSource) ctx.lookup(“jdbc/abc”);