1、配置Tomcat5.5.X的Server.xml,在<host>下面加上:
<Context path="/JNDIDemo" docBase="D:\workspace\JNDIDemo\WebRoot" debug="0" reloadable="true" crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_quality_log." suffix=".txt" timestamp="true"/>
<Resource
name="jdbc/test" <!-- JNDI数据池名称 -->
type="javax.sql.DataSource" <!-- 数据类 -->
password="karid" <!-- 密码 -->
driverClassName="oracle.jdbc.driver.OracleDriver" <!-- 驱动 -->
maxIdle="2" <!-- 最少可用lia -->
maxWait="5000" <!-- 最大等待时间 5秒 -->
username="karid" <!-- 用户名 -->
url="jdbc:oracle:thin:@127.0.0.1:1521:karid"
maxActive="4" <!-- 最大可用连接 --> />
<ResourceParams name="jdbc/test">
<parameter>
<name>removeAbandoned</name>
<!-- Abandoned DB connections are removed and recycled -->
<value>true</value>
</parameter>
<parameter>
<name>removeAbandonedTimeout</name>
<!-- Use the removeAbandonedTimeout parameter to set the number of seconds a DB connection has been idle before it is considered abandoned. -->
<value>60</value>
</parameter>
<parameter>
<name>logAbandoned</name>
<!-- Log a stack trace of the code which abandoned -->
<value>false</value>
</parameter>
<parameter>
<name>factory</name>
<!--DBCP Basic Datasource Factory -->
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
</ResourceParams>
2、配置web.xml
<description>MySQL Test App</description>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/test</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
3、JNDI使用
public class DataSourceFactory
{
private static DataSource ds;
public static DataSource createDataSourde()
{
if (ds == null)
{
try
{
Context initContext = new InitialContext();
if (initContext == null)
System.out.println("无配置环境");
Context envContext = (Context) initContext.lookup("java:/compenv");
ds = (DataSource) envContext.lookup("jdbc/test"); //根据名称取得数据源
}
catch (NamingException e)
{
e.printStackTrace();
}
}
return ds;
}
}
<Context path="/JNDIDemo" docBase="D:\workspace\JNDIDemo\WebRoot" debug="0" reloadable="true" crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_quality_log." suffix=".txt" timestamp="true"/>
<Resource
name="jdbc/test" <!-- JNDI数据池名称 -->
type="javax.sql.DataSource" <!-- 数据类 -->
password="karid" <!-- 密码 -->
driverClassName="oracle.jdbc.driver.OracleDriver" <!-- 驱动 -->
maxIdle="2" <!-- 最少可用lia -->
maxWait="5000" <!-- 最大等待时间 5秒 -->
username="karid" <!-- 用户名 -->
url="jdbc:oracle:thin:@127.0.0.1:1521:karid"
maxActive="4" <!-- 最大可用连接 --> />
<ResourceParams name="jdbc/test">
<parameter>
<name>removeAbandoned</name>
<!-- Abandoned DB connections are removed and recycled -->
<value>true</value>
</parameter>
<parameter>
<name>removeAbandonedTimeout</name>
<!-- Use the removeAbandonedTimeout parameter to set the number of seconds a DB connection has been idle before it is considered abandoned. -->
<value>60</value>
</parameter>
<parameter>
<name>logAbandoned</name>
<!-- Log a stack trace of the code which abandoned -->
<value>false</value>
</parameter>
<parameter>
<name>factory</name>
<!--DBCP Basic Datasource Factory -->
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
</ResourceParams>
2、配置web.xml
<description>MySQL Test App</description>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/test</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
3、JNDI使用
public class DataSourceFactory
{
private static DataSource ds;
public static DataSource createDataSourde()
{
if (ds == null)
{
try
{
Context initContext = new InitialContext();
if (initContext == null)
System.out.println("无配置环境");
Context envContext = (Context) initContext.lookup("java:/compenv");
ds = (DataSource) envContext.lookup("jdbc/test"); //根据名称取得数据源
}
catch (NamingException e)
{
e.printStackTrace();
}
}
return ds;
}
}