3种配置方法
一.配置全局连接池
1.配置server.xml
找到<GlobalNamingResources></GlobalNamingResources>标签
在起中加入 (代码段1)
<Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver" maxActive="20" maxIdle="10" maxWait="5000" name="jdbc/test" password="password" type="javax.sql.DataSource" url="jdbc:oracle:thin:@192.168.1.:1521:ql" username="username"/>
2.配置context.xml
在<Context></Context>中<WatchedResource>WEB-INF/web.xml</WatchedResource>后加入
<ResourceLink global="jdbc/test" name="jdbc/test" type="javax.sql.DataSource"/>
二.在context.xml配置
在context.xml文件的Context节点中配置Resource
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver" maxActive="20" maxIdle="10" maxWait="5000" name="jdbc/test" password="password" type="javax.sql.DataSource" url="jdbc:oracle:thin:@192.168.1.:1521:ql" username="username"/>
<Context>
三.在server.xml中的Context节点内配置Resource(私有的)
<Context docBase="common" path="/common" reloadable="true" source="org.eclipse.jst.jee.server:common">
<Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver" maxActive="20" maxIdle="10" maxWait="5000" name="jdbc/test" password="password" type="javax.sql.DataSource" url="jdbc:oracle:thin:@192.168.1.:1521:ql" username="username"/>
</Context>
配置项目的xml,加入
<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>
用spring的做如下配置:
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean" lazy-init="true">
<property name="jndiName"> <value>java:comp/env/jdbc/test</value> </property>
</bean>
测试使用
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ page import="javax.naming.*,javax.sql.*,java.sql.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>测试jndi</title>
</head>
<body>
<%
try {
Context cxt = new InitialContext();
//获得数据源
DataSource ds = (DataSource) cxt.lookup("java:comp/env/jdbc/test");
//获取连接
Connection conn=ds.getConnection();
out.println(conn);
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select 1 from dual");
while(rs.next())
{
out.println(rs.getString("1"));
}
} catch (Exception e) {
e.printStackTrace();
}
%>
</body>
</html>
记得把连接数据库的第三方驱动放到common/lib下
相关参数说明:
name 为当前数据源JNDI的名字,可以随意设定;
auth 为验证方式;
type 资源类型;
driverClassName 为Oracle驱动引用;
maxActiv 为连接池最大激活的连接数,设为0表示无限制;
maxIdle 为连接池最大空闲的连接数,数据库连接的最大空闲时间。超过空闲时间,
数据库连接将被标记为不可用,然后被释放。设为0表示无限制;
maxWait 为连接最大的等待时间,单位毫秒,如果超过此时间将接到异常。设为-1
表示无限制。;
username 为oracle数据库的一个用户名;
password 为username的密码;
url 为连接oracle的连接地址;
注:driverClassName="oracle.jdbc.driver.OracleDriver"
driverClassName="oracle.jdbc.OracleDriver" 都可以
更多参数说明