数据库连接池
2019-03-11 本文已影响29人
_NineSun旭_
数据库连接池介绍
在没有连接池,需要程序直接向数据库获取连接,频繁对数据库进行连接会使数据库宕机,进程直接被结束;为了缓解此压力,建立了一个缓冲,由此缓冲对数据库操作, 此缓冲区存放多个创建好的连接对象,程序要对数据库访问时,从连接池中取得一个连接对象,用完将连接对象返回给连接池,。
jdk只提供接口,具体的程序需要三方jar包。DBCP(apache)、C3P0、druid(阿里)
没有Mybatis情况下如何使用连接池:
jdk提供javax.sql.DataSource接口获取连接池,只提供接口,无实现类,只建立了一个标准。tomcat实现了这个接口的实现类,并调用DBCPjar包 ,由Tomcat管理连接池,java程序需要连接时就必须和Tomcat间进行进程间的通信,jdk中的JNDI(java命名目录接口) jar包来完成进程间的通信,其API为javax.namming.Context接口中的lookup(“数据源名称”)方法
Tomcat配置连接池
1.配置tomcat下的conf下的context.xml文件,在<Context></Context>之间:
<Resource name="jdbc/oracle"
auth="Container" <!-- 授权 -->
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url=" jdbc:oracle:thin:@host:port:databse"
username=" user"
password="password"
maxActive="100" <!-- 最大激活连接数,同时有20个连接 -->
maxIdle="30" <!-- 最大空闲连接数,没有人用也得存在 -->
maxWait="10000" /> <!-- 新的请求等待时间 -->
2.将对应数据库的驱动类dbcp、pool、connection三个jar包放到tomcat的lib目录下
启动Tomcat后测试:
...
Context c = new InitalContext();
DataSource pool = (DataSource)c.lookup("java:comp/env/jdbc/oracle";
Connection conn = pool.getConnection();
...