一、 Tomcat5.0.X数据源配置
1、 修改${tomcat_home}/conf/server.xml
<Context path="/JNDITest" docBase="JNDITest" debug="0" crosscontext="true" reloadable="true"> <Resource auth="Container" name="jdbc/oracleData" type="javax.sql.DataSource" /> <ResourceParams name="jdbc/oracleData"> <parameter> <name>factory</name> <value> org.apache.commons.dbcp.BasicDataSourceFactory </value> </parameter> <parameter> <name>url</name> <value> jdbc:oracle:thin:@127.0.0.1:1521:ORCL </value> </parameter> <parameter> <name>username</name> <value>orcldb</value> </parameter> <parameter> <name>password</name> <value>orcldb</value> </parameter> <parameter> <name>maxWait</name> <value>10000</value> </parameter> <parameter> <name>maxActive</name> <value>100</value> </parameter> <parameter> <name>driverClassName</name> <value>oracle.jdbc.driver.OracleDriver</value> </parameter> <parameter> <name>maxIdle</name> <value>30</value> </parameter> </ResourceParams> </Context> |
2、修改工程名/WEB-INF/Web.xml文件,在<web-app></web-app>之间增加以下代码:
<resource-ref> <description>Datasource </description> <res-ref-name> jdbc/oracleData </res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> |
3、将数据库驱动jar包拷贝到${tomcat_home}/common/lib下
4、使用测试代码测试数据库连接池配置是否成功,测试代码见第四部分。
二、 Tomcat5.5.X数据源配置
A. 配置一:直接全局配置
1、修改${tomcat_home}/conf/context.xml文件,在<Context> </Context>之间增加以下代码:
<Resource name="jdbc/oracleData" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="orcldb" password="orcldb" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521:ORCL"/> |
2、修改工程名/WEB-INF/Web.xml文件,在<web-app></web-app>之间增加以下代码:
<resource-ref> <description>Datasource </description> <res-ref-name> jdbc/oracleData </res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> |
3、将数据库驱动jar包拷贝到${tomcat_home}/common/lib下
4、使用测试代码测试数据库连接池配置是否成功。
B. 配置二:直接工程配置一
1、在${tomcat_home}/conf/Catalina/localhost/下建立一个xml文件,文件名是<yourAppName>.xml,例如我的工程名叫myPro,对应的名字叫myPro.xml。内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context> <Resource name="jdbc/oracleData" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="orcldb" password="orcldb" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521:ORCL"/> </Context> |
2、同配置一:直接全局配置步骤2
3、同配置一:直接全局配置步骤3
4、同配置一:直接全局配置步骤4
C. 配置三:直接工程配置二
1、在${tomcat_home}/webapps/工程名/META-INF/下创建context.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context> <Resource name="jdbc/oracleData" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="orcldb" password="orcldb" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521:ORCL"/> </Context> |
2、同配置一:直接全局配置步骤2
3、同配置一:直接全局配置步骤3
4、同配置一:直接全局配置步骤4
D. 配置四:全局映射配置一
1、在${tomcat_home}/conf/server.xml的<GlobalNamingResources>节点中加入以下内容:
<Resource name="jdbc/oracleData" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="orcldb" password="orcldb" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521:ORCL"/> |
2、在${tomcat_home}/conf/Catalina/localhost/下建立一个xml文件,文件名是<yourAppName>.xml例如我的工程名叫myPro,对应的名字叫myPro.xml加入如下内容:
<Context> <ResourceLink global=" jdbc/oracleData " name=" jdbc/oracleData " type="javax.sql.DataSource"/> </Context> |
3、同配置一:直接全局配置步骤2
4、同配置一:直接全局配置步骤3
5、同配置一:直接全局配置步骤4
E. 配置四:全局映射配置二
1、同配置四全局映射配置一步骤1
2、在${tomcat_home}/webapps/工程名/META-INF/context.xml的Context中增加配置四全局映射配置一步骤1中的内容,如果没有context.xml文件创建该文件即可。
3、同配置一:直接全局配置步骤2
4、同配置一:直接全局配置步骤3
5、同配置一:直接全局配置步骤4
F. 配置四:全局映射配置三
1、同配置四全局映射配置一:直接全局配置步骤1
2、增加全局映射,在${tomcat_home}/conf/ Catalina/context.xml的<Context></context>之间加入以下内容:
<ResourceLink global=" jdbc/oracleData " name=" jdbc/oracleData " type="javax.sql.DataSource"/> |
3、同配置一:直接全局配置步骤2
4、同配置一:直接全局配置步骤3
5、同配置一:直接全局配置步骤4
三、 Tomcat6.0.X数据源配置
与Tomcat5.5.X配置方式相同,需要将数据库驱动jar包拷贝到Tomcat6.0.X/lib目录下
四、 数据源测试代码
<%@ page contentType="text/html;charset=utf-8" %> <%@ page import="javax.sql.*,javax.naming.*,java.sql.*" %> <% String lookupName = "java:comp/env/jdbc/oracleData"; //这里的jdbc/dbsource根据您的配置进行相应修改 Context ctx = new InitialContext(); Connection con; DataSource ds; System.out.println( "开始查找数据源exercise" ); Object obj = ctx.lookup( lookupName ); ds = ( DataSource ) obj; con = ds.getConnection(); if( con !=null ){ out.println("exercise配置成功:"+ obj.getClass().getName() ); out.println("exercise配置成功:"+ lookupName ); } con=null; InitialContext initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); ds = (DataSource) envCtx.lookup("jdbc/oracleData"); con = ds.getConnection(); if( con !=null ){ out.println("/nexercise配置成功:"+ obj.getClass().getName() ); } %> |
五、 其它类型数据库数据源配置
对于其它类型的数据库,只需修改driverClassName和url,其它参数相同,driverClassName和url参数值参考下表:
数据库 | driverClassName | url |
Oracle | oracle.jdbc.driver.OracleDriver | jdbc:oracle:thin:@127.0.0.1:1521:ORCL |
SQLServer | net.sourceforge.jtds.jdbc.Driver | jdbc:jtds:sqlserver://127.0.0.1:1433/DB |
MySQL | org.gjt.mm.mysql.Driver | jdbc:mysql://127.0.0.1:3306/tes |
DB2 | com.ibm.db2.jcc.DB2Driver | jdbc:db2://127.0.0.1:50000/BZ |
Access | sun.jdbc.odbc.JdbcOdbcDriver | jdbc:odbc:test |
注:Access数据库需要建立ODBC数据源。
六、 常用问题与解决办法
1、Name jdbc is not bound in this Context和Cannot create JDBC driver of class '' for connect URL 'null' conf localhost错误
以上错误是为配置的全局数据源错误或映射信息不正确造成,检查全局数据源名称,映射信息中的数据源名称和程序中使用的数据源名称,注意大小写的统一。
2、Cannot load JDBC driver class 'oracle.jdbc.driver.OracleDriver'错误
没有把相应数据库驱动jar包拷贝到${tomcat_home}/common/lib下,拷贝相应数据库驱动jar到该目录即可。