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

来源:互联网 发布:do it just do it视频 编辑:程序博客网 时间:2024/06/06 21:39

一、在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();












0 0
原创粉丝点击