我有一段简单的代码:
import java.sql.*;
class ODBC
{
MyConnection myCon;
Connection jdbcConnection;
ResultSet rs;
String sql;
PreparedStatement stmt;
public ODBC() throws Exception {
init();
}
public void init() throws Exception{
myCon = new MyConnection();
jdbcConnection = myCon.getConnection();
}
public void runQuery() throws SQLException {
sql = "SELECT DISTINCT HELPDESK_CASE.INCIDENT_NUMBER, "
+ "HPD_AUDIT.AUDIT_DATE, HPD_AUDIT.AUDIT_FIELD, "
+ "HELPDESK_CASE.DETAILED_DESCRIPTION, "
+ "HPD_AUDIT.AFTER_VALUE, "
+ "HELPDESK_CASE.DESCRIPTION "
+ "FROM HELPDESK_CASE INNER JOIN "
+ "HPD_AUDIT ON HELPDESK_CASE.INCIDENT_NUMBER "
+ "= HPD_AUDIT.INCIDENT_NUMBER "
+ "WHERE (((HELPDESK_CASE.INCIDENT_NUMBER)='INC001001837949') "
+ "AND ((HPD_AUDIT.AUDIT_FIELD)='Assigned Group')) "
+ "ORDER BY HELPDESK_CASE.INCIDENT_NUMBER, "
+ "HPD_AUDIT.AUDIT_DATE";
stmt = jdbcConnection.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE );
rs = stmt.executeQuery();
while(rs.next()){
System.out.println("Something is here");
}
}
public static void main (String args[]) throws Exception
{
ODBC odbc;
odbc = new ODBC();
odbc.runQuery();
}
class MyConnection {
public Connection getConnection() throws Exception
{
String URL = "jdbc:odbc:corpp05";
Connection c = DriverManager.getConnection(URL, "remro", "*****");
return c;
}
}
}
我无法弄清楚以下行为。
当我按如下方式使用preparedStatement时:
stmt = jdbcConnection.prepareStatement(sql);
while循环永远不会按预期的行为执行,但是当我按如下方式使用preparedStatement时:
stmt = jdbcConnection.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE );
(因为我需要TYPE_SCROLL_INSENSITIVE,所以我需要)执行while循环并打印“Something is here”。
我在这里缺少什么?我觉得这是相对明显的,我需要退后一步,我相信还有另一只眼睛。感谢帮助。
Cmres
答案 0 :(得分:0)
从最适合您正在使用的oracle版本的oracle站点下载thin
驱动程序。在eclipse外部jar文件存档中添加jar
文件。
完成所有设置后:
你可以按如下方式建立连接:
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","user","****");
由于jdbc.getTransactionIsolation()
在你的情况下返回2,所以消除了脏读的可能性。
我希望改变司机会解决你的问题。
修改强>
请阅读JDBC-ODBC
网站上关于Oracle
驱动程序的here。在描述有关JDBC-ODBC
驱动程序的某些行之后,它告诉以下缺点:
缺点:不适用于大型应用程序。性能受到影响因为 有一些与翻译工作相关的开销 JDBC到ODBC。 不支持Java的所有功能。用户是 受底层ODBC驱动程序功能的限制。
因此,当应用程序完全基于JDBC-ODBC
驱动程序以通过java.sql
程序包提供的敏感API实现数据库事务或其他重要数据库功能时,它提供足够的理由相信某些关键问题可能会受到影响