数据库的数据源(连接池)

一、在JDBC编程中,每操作一次数据库都出经过:Connection、创建Statement对象、获取ResultSet、销毁ResultSet、销毁Statement、断开Connection也就是说每一次操作数据库,都会创建连接、断开连接。在实际开发中为了避免频繁的创建、断开数据库的连接,提出了数据源(Data Source),也称为连接池(DBCP,Database Connection Pool),这样在操作数据库时,程序并不是直接创建Connection,而是向连接池“申请”一个Connection,如果连接池中有空闲的Connection,则返回该Connection,否则创建新的Connection,使用完毕以后,Servlet会释放该Connection,这时连接池会将该Connection回收,并交给其他线程使用,可以达到减少创建、断开连接的次数。

二、数据源一般实现自javax.sql.DataSource接口,Spring、Struts、Hibernate等框架都有自己的数据源实现。Tomcat中也内置 了数据源的支持。

三、Tomcat实现数据源的步骤:

1、找到tomcat/conf/context.xml文件加入如下配置:

<Context cookies="true">

<Resource name="jdbc/databaseWeb"   author="Container"  type="javax.sql.DataSource"

                  maxActive="100"  maxIdle="30"  maxWait="10000"  

                  username="username"   password="password"

                  driverClassName="com.mysql.jdbc.Driver"

                  url="jdbc:mysql://localhost:3306/databaseWeb?characterEncoding=utf-8" />

</Context>

其中:databaseWeb指的是数据库名,username,password分别表示用户名、密码

2、在工程的web.xml文件中添加如下代码:

<resource-ref>

  <description>DB Connection</description>

  <res-ref-name>jdbc/databaseWeb<res-ref-name>

  <res-type>javax.sql.DataSource<res-type>

  <res-auth>Container<res-auth>

</resource-ref>

3、使用方法

//获取所有的资源

Contect initContext=new InitialContext();

Context envContext =(Context) initContext.lookup("java:/comp/env");

DataSource ds=(DataSource)envContext.lookup("jdbc/databaseWeb");

//获取JNDI数据源

Connection conn=ds.getConnection();












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值