在Java 中執行下面SQL語句沒有響應,DEBUG 無法跟蹤代碼,但此語句在SQL DEVELOPER 執行沒問題,在Java代碼中執行其他 SQL 語句基本也沒問題。insert into T1 (ID, VALUE) select ID, VALUE from T2import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import oracle.jdbc.driver.OracleDriver;public class TestOracleUtil {public static void main(String[] args) throws SQLException {
String sql = "insert into T1 (ID, VALUE) select ID, VALUE from T2";
update(getConnection(), sql);
}
public static Connection getConnection() {
new OracleDriver();
String serverName = "192.168.1.3";
String portNumber = "1521";
String sid = "ORCL";
String url = "jdbc:oracle:thin:@" + serverName + ":" + portNumber + ":"
+ sid;
String username = "test";
String password = "test";
try {
Connection conn = DriverManager.getConnection(url, username,
password);
return conn;
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}
static void update(Connection conn, String sql) throws SQLException{
Statement smt = conn.createStatement();
smt.executeUpdate(sql);
}}
4 回答

湖上湖
TA貢獻2003條經驗 獲得超2個贊
如果數據庫連接沒有報錯的話,試試先關閉取消自動提交,[code="java"]conn.setAutoCommit(false) ; [/code],在最后手動提交,conn.commit();

慕斯709654
TA貢獻1840條經驗 獲得超5個贊
問題可能出在Connection沒有提交到數據庫,而且你DriverManager 也沒有初始化啊~
一般用Class.formane("oracle.jdbc.driver.OracleDriver")

慕的地8271018
TA貢獻1796條經驗 獲得超4個贊
try {
Class.forName(sqldriver);
c = DriverManager.getConnection(connURL);
return c;
} catch (Exception e) {
e.printStackTrace();
if (c != null)
try {
c.close();
} catch (SQLException e1) {
}
}
return c;
}
public void closeConnection(Connection c, Statement s, ResultSet r) { try { if (r != null) r.close(); } catch (Exception e) { e.printStackTrace(); } try { if (s != null) s.close(); } catch (Exception e) { e.printStackTrace(); } try { if (c != null) c.close(); } catch (Exception e) { e.printStackTrace(); } }
添加回答
舉報
0/150
提交
取消