视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
DBCP连接池的最简单应用(用于Oracle数据库)
2020-11-09 11:05:05 责编:小采
文档


sean-m700是主机名,ora92是oracle数据库的instance ID. 我手头的机器上没有安装oracle数据库,用的是很早以前的一个oracle9.2的

鉴于有人问起DBCP直接用于JDBC连接的问题,我做了一个最简单的示例。所有资源来源于网上。它不需要什么Web容器,就是一简单的控制台应用。

资源:

当然,还有Oracle jdbc要用的ojdbc14.jar (适用于oracle9i及以上版本)

工程文件:放到这里了。

数据库连接信息:
jdbc:oracle:thin:scott/tiger@sean-m700:1521:ora92
sean-m700是主机名,ora92是oracle数据库的instance ID. 我手头的机器上没有安装oracle数据库,用的是很早以前的一个oracle9.2的拷贝,重新安装实例和相应服务得来的。


源码如下:借化献佛,,源码也是从网上得来的。(?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:. \
// 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();
}

}

下载本文
显示全文
专题