tomcat数据源配置 Tomcat配置多数据源
Tomcat配置多数据源
测试的tomcat为apache tomcat 数据库为mysql和oracle
配置步骤如下
把数据库的JDBC驱动放入D:apache tomcat lib目录下
在D:apache tomcat confweb xml文件中 将下面代码加入到web xml中
<resource ref>
<description>DB Connection</description>
<res ref name>jdbc/mysql</res ref name>
<res type>javax sql DataSource</res type>
<res auth>Container</res auth>
</resource ref>
<resource ref>
<description>DB Connection</description>
<res ref name>jdbc/oracle</res ref name>
<res type>javax sql DataSource</res type>
<res auth>Container</res auth>
</resource ref>
在D:apache tomcat confserver xml文件中 在Host节点下添加Context子节点 配置如下
<Context path= /ljqtest docBase= ljqtest debug= reloadable= true crossContext= true >
<Resource name= jdbc/mysql
type= javax sql DataSource
username= root
password= mysql
driverClassName= gjt mm mysql Driver
url= jdbc:mysql://localhost: /shop
maxIdle=
maxWait=
maxActive= >
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
</Resource>
<Resource name= jdbc/oracle
type= javax sql DataSource
username= test
password= test
driverClassName= oracle jdbc driver OracleDriver
url= jdbc:oracle:thin:@localhost: :ORCL
maxIdle=
maxWait=
maxActive= >
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
</Resource>
</Context>
</Host>
或者
<Context path= /uimcardprj docBase= uimcardprj debug= reloadable= true crossContext= true >
<Resource name= jdbc/ycxkDB
type= javax sql DataSource
username= ycxk
password= xmzh
driverClassName= oracle jdbc driver OracleDriver
url= jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = ))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))
maxIdle=
maxWait=
maxActive= >
</Resource>
</Context>
</Host>
注意 path为D:apache tomcat webapps目录下的工程名称
把web工程项目部署在D:apache tomcat webapps目录下
MysqlConn类 获取Mysql数据源
package ljq test;
import java sql Connection;
import java sql SQLException;
import javax naming Context;
import javax naming InitialContext;
import javax sql DataSource;
public final class MysqlConn {
// 懒汉式单例(使用时才new)
private static MysqlConn instance = null;
MysqlConn() {

}
// 延迟初始化(用到的时候才加载)(推荐)
// public static synchronized JdbcConn
// getInstance(){} >这样不好 因为每调用一次就同步 效率非常低
public static MysqlConn getInstance() {
if (instance == null) {
synchronized (MysqlConn class) {// 可能会产生并发的问题 我们对他进行同步
if (instance == null) {
instance = new MysqlConn();
}
}
}
return instance;
}
private DataSource getDataSource() {
DataSource ds = null;
try {
Context ctx = new InitialContext();
ds = (DataSource) ctx lookup( java:p/env/jdbc/mysql );
} catch (Exception e) {
System out println( 数据源获取失败 );
e printStackTrace();
}
return ds;
}
public Connection getConn() {
Connection conn = null;
try {
conn = getDataSource() getConnection();
} catch (SQLException e) {
System out println( 数据库连接失败 );
e printStackTrace();
}
return conn;
}
}
OraclelConn类 获取Oracle数据源
package ljq test;
import java sql Connection;
import java sql SQLException;
import javax naming Context;
import javax naming InitialContext;
import javax sql DataSource;
public final class OracleConn {
// 懒汉式单例(使用时才new)
private static OracleConn instance = null;
OracleConn() {
}
// 延迟初始化(用到的时候才加载)(推荐)
// public static synchronized JdbcConn
// getInstance(){} >这样不好 因为每调用一次就同步 效率非常低
public static OracleConn getInstance() {
if (instance == null) {
synchronized (OracleConn class) {// 可能会产生并发的问题 我们对他进行同步
if (instance == null) {
instance = new OracleConn();
}
}
}
return instance;
}
private DataSource getDataSource() {
DataSource ds = null;
try {
Context ctx = new InitialContext();
ds = (DataSource) ctx lookup( java:p/env/jdbc/mysql );
} catch (Exception e) {
System out println( 数据源获取失败 );
e printStackTrace();
}
return ds;
}
public Connection getConn() {
Connection conn = null;
try {
conn = getDataSource() getConnection();
} catch (SQLException e) {
System out println( 数据库连接失败 );
e printStackTrace();
}
return conn;
}
}
页面index jsp:打印数据库连接对象
<body>
mysql连接对象为 <%Connection conn=MysqlConn getInstance() getConn();%><%=conn %><%conn close();%><br/>
oracle连接对象为 <%Connection conn =MysqlConn getInstance() getConn();%><%=conn %><%conn close();%><br/>
</body>
启动tomcat 在浏览器中输入//localhost: /ljqtest/ 输出如下
lishixinzhi/Article/program/Java/ky/201311/28581