在JDBC的操作中,打开和关闭数据库连接,是最耗费数据库资源的,我们可以在服务器上存放一定量的数据库连接,每当程序要连接数据库时,就将这些链接给它们,而一旦程序退出数据库操作时,要将这些链接返回给服务器。
首先在Tomcat/lib下引入jar包4个,分别是
commons-collections.jar、commons-dbcp.jar、commons-pool.jar、mysql-connector-java-5.0.4-bin.jar
1.将下面的代码添加到Tomcat服务器上conf/context.xml中的<Context></Context>标签中
<Resource
name="mydb"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="sa"
password="dba"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test"
/>
服务器:Tomcat7
数据库:SQLServer
上下文context.xml中的参数的解析如下:
其中的name属性是数据源名称.
driverClassName属性是驱动程序名称。
username,password,数据库名称和密码
url:访问的数据库路径。其中url的内容组成解析上篇博客中已经分析
maxActive属性是并发连接的最大数。设置为0则无限制。
maxWait属性是等待连接的最大连接的时间。
maxIdle属性是连接池中空闲的连接的个数。
2.对应的JAVAWEB项目\WEB-INF\web.xml配置
<description>SQLServer Test App</description>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>mydb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
3.Servlet调用方式
//创建一个上下文环境
Context ctt=new javax.naming.InitialContext();
//通过con得到数据源
DataSource ds=(DataSource)ctt.lookup("java:comp/env/mydb");
ct=ds.getConnection();