您现在的位置是:首页 >

tomcat数据源配置 Tomcat配置多数据源

火烧 2023-01-21 20:22:37 1083
Tomcat配置多数据源   测试的tomcat为a ache tomcat 数据库为my ql和oracle   配置步骤如下   把数据库的JDBC驱动放入D:a ache tomcat li 目

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() {

tomcat数据源配置 Tomcat配置多数据源

  }

  // 延迟初始化(用到的时候才加载)(推荐)

  // 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  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码