1。 就像其他的数据库连接一样,你需要把Oracle的驱动程序复制到Tomcat的common/lib目录下.
2。修改Tomcat下你的应用配置文件,这个文件放在Tomcat的conf/Catalina/localhost目录下,我们举例的文件文件名是bulletinSystem.xml,这个文件的内容如下:
-----------------------------------------------<?xml version='1.0' encoding='utf-8'?><Context docBase="E:/JBuilderProject/eshop/bulletinSystem" path="/bulletinSystem" reloadable="true" workDir="E:/JBuilderProject/eshop/Tomcat/work/bulletinSystem">
<Resource name="jdbc/eshop/bulletinSystem" auth="Container" type="javax.sql.DataSource" /><ResourceParams name="jdbc/eshop/bulletinSystem"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>driverClassName</name> <value>oracle.jdbc.driver.OracleDriver</value> </parameter> <parameter> <name>url</name> <value>jdbc:oracle:thin:@192.168.13.4:1521:hong</value> </parameter> <parameter> <name>username</name> <value>eshop</value> </parameter> <parameter> <name>password</name> <value>eshop</value> </parameter> <parameter> <name>maxWait</name> <value>5000</value> </parameter> <parameter> <name>maxActive</name> <value>4</value> </parameter> <parameter> <name>maxIdle</name> <value>2</value> </parameter> <parameter> <name>validationQuery</name> <value>select * from dual</value> </parameter> </ResourceParams>
</Context>---------------------------------------------◎ Resource的name属性定义了数据源名(绿色的字),在配置其参数和得到数据连接对象时要使用到,要求唯一。这个名字一般要用jdbc/开头,因为使用的时候查找连接池数据源使用的前缀为 java:comp/env/jdbc,见4。◎ Resource元素里面的参数: #factory:定义了数据源工厂,用于产生和管理连接池对象,它是由Tomcat提供的。 #driverClassName:定义了驱动程序的名称。对于不同类型的数据库和不同类型的驱动程序,该值不同。本例中使用的是Oracle的数据库。 #url :建立数据连接时使用的url字符串。不同的数据库有不同的连接方法,该值就不同。在这个参数里设置你要访问的数据库的ip和数据库服务名。 #username:访问数据库的用户名。 #password:访问数据的密码。 #maxWait:建立数据库连接时的时间等待。超时就抛出异常。 #maxActive:同一时刻最大连接数。这个要考虑机器的负载能力。 #maxIdle:最大空闲连接数。空闲时间所需要保持的最大连接数。 #validationQuery:这里定义一个可以执行的查询语句。主要作用是被连接池用来检测一个连接是否有效,因为TCP/IP连接并不会一直保持的。指定的validationQuery必须非常简单,并且执行效率要很高;本例中使用了Orale的一个虚拟对象dual,它在其他数据库中是不存在的。
3。修改你的应用的web.xml,就是应用下的WEB-INF/web.xml,添加代码如下,添加在</web-app>之前,(^_^,实践表明,前面配置好了,不添加这段配置也连接池可以用)
-------------------------------------------- <resource-ref> <description>Oracle Datasource for edushop</description> <res-ref-name>jdbc/eshop/bulletinSystem</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>--------------------------------------------
4。在你的应用下使用如下代码获得数据库连接:
--------------------------------------------import java.sql.*;import javax.naming.*;import javax.sql.*;
Context initCtx = new InitialContext();Context envCtx=(Context)initCtx.lookup("java:comp/env");DataSource ds = (DataSource) envCtx.lookup("jdbc/eshop/bulletinSystem");Connection conn=ds.getConnection();--------------------------------------------也可以直接使用:DataSource ds = (DataSource) initCtx.lookup("java:comp/env/jdbc/eshop/bulletinSystem");
4。就这么多。使用数据库连接后记得释放。写的比较简单,有时间再来补充,^_^
