The simplest application of the DBCP connection pool (for Oracle databases)

Source: Internet
Author: User
In view of the problem that DBCP is directly used for JDBC connections, I made a simple example. All resources are from the Internet. It does not need any Web Container, but is a simple console application.

Resource:
Http://apache.etoak.com//commons/pool/binaries/commons-pool-1.5.6-bin.zip
Http://labs.renren.com/apache-mirror//commons/dbcp/binaries/commons-dbcp-1.4-bin.zip
Http://download.java.net/maven/1/javaee/jars/javaee-api-5.jar
Of course, there are also ojdbc14.jar for Oracle JDBC (applicable to Oracle9i and later)

Project File: Put it here. Http://dl.iteye.com/topics/download/210279f0-f752-37a6-969f-d58ba13cc394

Database connection information:
JDBC: oracle: thin: Scott/tiger @ sean-m700: 1521: ora92
The sean-m700 is the host name, And ora92 is the instance id of the Oracle database. I have not installed the Oracle database on my machine. I used an earlier copy of oracle9.2 to reinstall the instance and the corresponding services.

The source code is as follows: Lihua xianfo, the source code is also obtained from the Internet. (Http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/doc/BasicDataSourceExample.java? Revision = 1100136 & view = markup)

    /*     //     33  // Here's a simple example of how to use the BasicDataSource.     34  //     35       36  //     37  // Note that this example is very similiar to the PoolingDriver     38  // example.     39       40  //     41  // To compile this example, you'll want:     42  //  * commons-pool-1.5.6.jar     43  //  * commons-dbcp-1.3.jar (JDK 1.4-1.5) or commons-dbcp-1.4 (JDK 1.6+)     44  //  * j2ee.jar (for the javax.sql classes)     45  // in your classpath.     46  //     47  // To run this example, you'll want:     48  //  * commons-pool-1.5.6.jar     49  //  * commons-dbcp-1.3.jar (JDK 1.4-1.5) or commons-dbcp-1.4 (JDK 1.6+)     50  //  * j2ee.jar (for the javax.sql classes)     51  //  * the classes for your (underlying) JDBC driver     52  // in your classpath.     53  //     54  // Invoke the class using two arguments:     55  //  * the connect string for your underlying JDBC driver     56  //  * the query you'd like to execute     57  // You'll also want to ensure your underlying JDBC driver     58  // is registered.  You can use the "jdbc.drivers"     59  // property to do this.     60  //     61  // For example:     62  //  java -Djdbc.drivers=oracle.jdbc.driver.OracleDriver \     63  //       -classpath commons-pool-1.5.6.jar:commons-dbcp-1.4.jar:j2ee.jar:oracle-jdbc.jar:. \     64  //       PoolingDataSourceExample     65  //       "jdbc:oracle:thin:scott/tiger@myhost:1521:mysid"     66  //       "SELECT * FROM DUAL"     */      /*     The Oracle connection URL for the thin client-side driver ojdbc14.jar has the following format:     jdbc:oracle:thin:[user/password]@[host][:port]:SID     jdbc:oracle:thin:[user/password]@//[host][:port]/SID            user - The login user name defined in the Oracle server.            password - The password for the login user.            host - The host name where Oracle server is running.               Default is 127.0.0.1 - the IP address of localhost.            port - The port number where Oracle is listening for connection.              Default is 1521.            SID  - System ID of the Oracle server database instance.               SID is a required value. By default, Oracle Database 10g Express               Edition creates one database instance called XE.     */            import org.apache.commons.dbcp.BasicDataSource;      import javax.sql.*;      import java.sql.*;            public class TestDataSource      {                /**          * @param args          */          public static void main(String[] args)          {              System.out.println("Setting up data source.");              String url = "jdbc:oracle:thin:scott/tiger@sean-m700:1521:ora92";              DataSource dataSource = setupDataSource(url);              System.out.println("Done...");                    // Now, we can use JDBC DataSource as we normally would.              //              Connection conn = null;              Statement stmt = null;              ResultSet rset = null;                    try {                  System.out.println("Creating connection.");                  conn = dataSource.getConnection();                  System.out.println("Creating statement.");                  stmt = conn.createStatement();                  System.out.println("Executing statement.");                  rset = stmt.executeQuery("select 1 from DUAL");                  System.out.println("Results:");                  int numcols = rset.getMetaData().getColumnCount();                  while(rset.next()) {                      for(int i=1;i<=numcols;i++) {                          System.out.print("\t" + rset.getString(i));                      }                      System.out.println("");                  }              } catch(SQLException e) {                  e.printStackTrace();              } finally {                  try { if (rset != null) rset.close(); } catch(Exception e) { }                  try { if (stmt != null) stmt.close(); } catch(Exception e) { }                  try { if (conn != null) conn.close(); } catch(Exception e) { }              }          }                public static DataSource setupDataSource(String connectURI) {              BasicDataSource ds = new BasicDataSource();              ds.setDriverClassName("oracle.jdbc.driver.OracleDriver");              ds.setUsername("scott");              ds.setPassword("tiger");              ds.setUrl(connectURI);              return ds;          }                public static void printDataSourceStats(DataSource ds) {              BasicDataSource bds = (BasicDataSource) ds;              System.out.println("NumActive: " + bds.getNumActive());              System.out.println("NumIdle: " + bds.getNumIdle());          }                public static void shutdownDataSource(DataSource ds) throws SQLException {              BasicDataSource bds = (BasicDataSource) ds;              bds.close();          }            }  

However, it should be noted that the DBCP connection pool is the least suitable for production environments among several open-source connection pools and often leads to dead connections. Cp30 and proxool are both good choices. DBCP is convenient for evaluating the development environment.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.