1, yes
2, 两个使用的API不同,第一个要通过JDBC-ODBC桥来连接,你需要在ODBC里面进行设置,
第二个oracle公司专门有一个连接oracle的API,在oracle安装目录下的jdbc下面,有readme文件可以看,它不需要ODBC
2, 两个使用的API不同,第一个要通过JDBC-ODBC桥来连接,你需要在ODBC里面进行设置,
第二个oracle公司专门有一个连接oracle的API,在oracle安装目录下的jdbc下面,有readme文件可以看,它不需要ODBC
package jp.co.nec.JTC;import java.sql.*;
import java.util.*;
import java.io.*;
public class JTCDBConnectionF implements Serializable{ /* 僐僱僋僔儑儞僆僽僕僃僋僩 */
protected Connection con = null; /* 僐儞僗僩儔僋僞 */
public JTCDBConnectionF() {
}
public void dbOpen() throws java.lang.Exception{
if (con == null || con.isClosed()) {
String url = "jdbc:oracle:oci8:@apsv";
String user = "scott";
String pass = "tiger";
// 僪儔僀僶偺儘乕僪
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
// 俢俛偵愙懕
con = DriverManager.getConnection(url,user,pass);
// 僩儔儞僓僋僔儑儞僞僀僾偺愝掕
con.setTransactionIsolation( con.TRANSACTION_READ_COMMITTED );
con.setAutoCommit(false); System.out.println("DB OPEN");
} else {
System.out.println("OPENED DB");
}
}
public JTCerrorF dbClose() {
try {
if (con != null && !con.isClosed()) {
//儘乕儖僶僢僋(惓忢廔椆帪偼close偡傞慜偵忋埵偱僐儈僢僩偡傞偙偲)
con.rollback();
con.close();
System.out.println("DB CLOSE");
} else {
System.out.println("CLOSED DB");
}
}
catch (SQLException se) {
// return new JTCerrorF(se.getErrorCode(),se);
return new JTCerrorF("PD05",se); //DB CLOSE
}
finally {
con = null;
}
return (JTCerrorF)null;
}
}
其实DataSource起始本身要比直接的DBURL要慢,因为他用到JNDI的寻址过程。只是很多应用服务器通过JNDI实现对数据库连接的统一管理并且实现了连接池,才可能比较快!DataSource的下层数据库连接还是通过URL实现的吧