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 // 下面是如何使用 BasicDataSource 的简单示例。
34 //
35
36 //
37 // 请注意,此示例与 PoolingDriver
38 // 示例非常相似。
39
40 //
41 // 要编译此示例,您需要:
42 // * commons-pool-1.5.6.jar
43 // * commons -dbcp-1.3.jar (JDK 1.4-1.5) 或 commons-dbcp-1.4 (JDK 1.6 )
44 // * j2ee.jar(对于 javax.sql 类)
45 // 在类路径中。
46 //
47 // 要运行此示例,您需要:
48 // * commons-pool-1.5.6.jar
49 // * commons-dbcp-1.3 .jar (JDK 1.4-1.5) 或 commons-dbcp-1.4 (JDK 1.6 )
50 // * j2ee.jar(用于 javax.sql 类)
51 // * 您的(底层)类JDBC 驱动程序
52 // 在您的类路径中。
53 //
54 // 使用两个参数调用该类:
55 // * 底层 JDBC 驱动程序的连接字符串
56 // * 您要执行的查询
57 // 您还需要确保底层 JDBC 驱动程序
58 // 已注册。 您可以使用“jdbc.drivers”
59 // 属性来执行此操作。
60 //
61 // 例如:
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"
*/
/*
瘦客户端驱动程序 ojdbc14.jar 的 Oracle 连接 URL 具有以下格式:
jdbc:oracle:thin:[user/password]@[host][:port]:SID
jdbc:oracle:thin:[用户/密码]@//[主机][:端口]/SID
user - Oracle 服务器中定义的登录用户名。
密码 - 登录用户的密码。
host - Oracle 服务器运行的主机名。
默认值为 127.0.0.1 - 本地主机的 IP 地址。
port - Oracle 侦听连接的端口号。
默认值为 1521。
SID - Oracle 服务器数据库实例的系统 ID。
SID 是必需值。默认情况下,Oracle Database 10g Express
Edition 创建一个名为 XE 的数据库实例。
*/
导入 org.apache.commons.dbcp.BasicDataSource;
导入javax.sql.*;
导入java.sql.*;
public class TestDataSource
{
/**
* @param args
*/
public static void main(String[] args)
{
System.out .println("设置数据源。");
String url = "jdbc:oracle:thin:scott/tiger@sean-m700:1521:ora92";
数据源 dataSource = setupDataSource(url);
System.out.println("完成...");
// 现在,我们可以像平常一样使用 JDBC DataSource。
//
连接 conn = null;
语句 stmt = null;
ResultSet rset = null;
try {
System.out.println("创建连接。");
conn = dataSource.getConnection();
System.out.println("创建语句。");
stmt = conn.createStatement();
System.out.println("执行语句。");
rset = stmt.executeQuery("从 DUAL 中选择 1");
System.out.println("结果:");
int numcols = rset.getMetaData().getColumnCount();
while(rset.next()) {
for(int i=1;i System.out.print("t" rset.getString(i));
}
System.out.println("");
}
} catch(SQLException e) {
e.printStackTrace();
} 最后 {
尝试 { 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("老虎");
ds.setUrl(connectURI);
返回 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();
}
}