tomcatdbcp连接池和c3p0连接池配置

    技术2022-05-19  27

    局部连接池配置(在项目内部配置)

     

    在webroot根目录下的web-inf 文件夹下建立一个文件context.xml     内容如下:

     

    <?xml version="1.0" encoding="UTF-8"?>   

    <Context reloadable="true" crossContext="true"> 

    <!--  dbcp 连接池配置   此处配置了两个连接池

    <Resource    

    name="jdbc/OracleDB"    

    auth="Container"    

    type="javax.sql.DataSource"   

    driverClassName="oracle.jdbc.driver.OracleDriver"    

    url="jdbc:oracle:thin:@10.230.232.110:1521:orcl"   

    maxActive="200"    

    maxldle="10"    

    maxWait="10000"   

    username="123"   

    password="123" 

    testOnBorrow="true" testWhileIdle="true" validationQuery="select 1 from dual"   

    />   

     

    <Resource    

    name="jdbc/sqlDB"    

    auth="Container"    

    type="javax.sql.DataSource"   

    driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"    

    url="jdbc:sqlserver://123.15.54.111:2002"   

    maxActive="200"    

    maxldle="10"    

    maxWait="10000"   

    username="123"   

    password="123"   

    />  

    -->  

     

    <!--以下是 c3p0   连接池配置       此处配置了两个连接池--> 

     

    <Resource name="jdbc/OracleDB"

    auth="Container" 

         description="DB Connection" 

         driverClass="oracle.jdbc.driver.OracleDriver" 

         maxPoolSize="200" 

         minPoolSize="10" 

         acquireIncrement="3" 

         jdbcUrl="jdbc:oracle:thin:@10.230.232.110:1521:orcl"

         user="123" 

         password="123" 

         factory="org.apache.naming.factory.BeanFactory" 

         type="com.mchange.v2.c3p0.ComboPooledDataSource" 

          />

     <Resource name="jdbc/sqlDB"

    auth="Container" 

         description="DB Connection" 

         driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver" 

         maxPoolSize="200" 

         minPoolSize="10" 

         acquireIncrement="3" 

         jdbcUrl="jdbc:sqlserver://123.15.54.111:2002"

         user="123" 

         password="123" 

         factory="org.apache.naming.factory.BeanFactory" 

         type="com.mchange.v2.c3p0.ComboPooledDataSource" 

          />

     

    </Context>  

    下面是写一个类文件调用生成数据库连接  ConnJDBC.java package com.hnepri.ptmcgt.commons; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.IOException; import java.net.URLDecoder; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; public class ConnJDBC { // // private static Connection getConnection() throws ClassNotFoundException { // connection = getOracleConn(); // return connection; // } //   // // private static void closeConnection(ResultSet rs, Statement st) // throws SQLException { // if (rs != null) // rs.close(); // if (st != null) // st.close(); // if (connection != null) // connection.close(); // }   public  static Connection getOracleConn() throws ClassNotFoundException { Connection conn = null; DataSource ds = null;    try{        Context initCtx = new InitialContext();       ds =(DataSource)initCtx.lookup("java:comp/env/jdbc/OracleDB");      if(ds!=null){           System.out.println("已经获得DataSource!");            conn = ds.getConnection();        System.out.println("得到连接成功");      } } catch(SQLException e){       e.printStackTrace(); } catch (NamingException e) { // TODO Auto-generated catch block e.printStackTrace(); }  return conn; }   public  static Connection getSqlConn() throws ClassNotFoundException { Connection conn = null; DataSource ds = null;    try{        Context initCtx = new InitialContext();       ds =(DataSource)initCtx.lookup("java:comp/env/jdbc/sqlDB");      if(ds!=null){           System.out.println("已经获得DataSource!");            conn = ds.getConnection();        System.out.println("得到连接成功");      } } catch(SQLException e){       e.printStackTrace(); } catch (NamingException e) { // TODO Auto-generated catch block e.printStackTrace(); }  return conn; }   public static void main(String[] arg) throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException { //   Class.forName(Property.getProperty("sqlDB.driver")).newInstance();    // String url=Property.getProperty("sqlDB.url");   // String user=Property.getProperty("sqlDB.userName");   // String password=Property.getProperty("sqlDB.userPass");  // Connection conn= DriverManager.getConnection(url,user,password);   getSqlConn(); } } 声明:使用dbcp连接池非常不稳定,经常出现连接错误。如得不到连接了;空对象等待连接超时了等等。建议使用c3p0配置。


    最新回复(0)