2013-06-25 39 views
0
import java.sql.*; 
import sun.jdbc.odbc.JdbcOdbcDriver; 
class Jdbc1 
{ 
    public static void main(String[] args) throws Exception 
    { 
     JdbcOdbcDriver jd=new JdbcOdbcDriver(); 
     DriverManager.registerDriver(jd); 
     Connection con=DriverManager.getConnection("jdbc:odbc:sai123","SYSTEM","sai123"); 
     Statement st=con.createStatement(); 
     int res=st.executeUpdate("insert into A1 values('1','tomato','10')"); 
     System.out.println(res+"record is inserted.."); 
     st.close(); 
     con.close(); 
    } 
} 

,我有創建表:我無法在Oracle數據庫中創建的表中插入一條記錄。我在做什麼錯誤?

CREATE TABLE A1(
INO INTEGER NOT NULL, 
INAME CHAR(30) NOT NULL, 
IPRICE INTEGER NOT NULL 
); 

當我編譯和運行java前衛它說:「1個插入記錄。」但是當我的SQLDeveloper打開我的表,我不覺得任何更新在桌子裏。他們都是空的! 我還設置了ojdbc-6.jar的類路徑。我在做什麼錯誤?是否還有其他文件需要複製和粘貼?我只是一個初學者,請大家幫忙。 我的程序如何在Editplus中直接將更新直接導入SQL中創建的表中。它遵循什麼路徑?

+1

'COMMIT'可能? –

+1

請不要在'SYS'或'SYSTEM'帳戶中創建表... –

+0

但這是我如何連接到oracle數據庫不是嗎? –

回答

4

甲骨文已經自動提交默認設置爲false。無論是從的Oracle SQL Developer(或者代碼)設置自動提交到真或從代碼提交修改:

//before con.close() 
con.commit(); 

或者,如果你想設置爲自動提交:

//after creating Connection 
conn.setAutoCommit(true); 
+0

我該怎麼做? –

+0

我補充說..它仍然是一樣的。 –

+1

也嘗試過自動提交! –

0

嘗試通過提交記錄調用 conn.commit();

還提到了Why Execute Update Says, one row updated on insert query

主最終代碼看起來應該像 public static void main(String[] args) throws Exception
{
JdbcOdbcDriver jd=new JdbcOdbcDriver();
DriverManager.registerDriver(jd);
Connection con=DriverManager.getConnection("jdbc:odbc:sai123","SYSTEM","sai123");
Statement st=con.createStatement();
int res=st.executeUpdate("insert into A1 values('1','tomato','10')");
System.out.println(res+"record is inserted..");
con.commit();
st.close();
con.close();
}

+0

它仍然顯示與空值相同的表格! –

+0

您確定您正在正確的架構和服務器下檢查正確的表嗎? –

0

有沒有可能是你的Java代碼和的SQLDeveloper指的是不同的模式?我建議做以下

  1. 讓INO表的主鍵
  2. con.commit(); int res=st.executeUpdate("insert into A1 values('1','tomato','10')");和 之間 System.out.println(res+"record is inserted..");
  3. 運行程序多次檢查,如果你正在主鍵衝突例外。這會告訴你,如果你的程序插入到你沒有看的表中。
+0

它仍然顯示與空值相同的表格! –

+0

我的程序如何在Editplus中直接將更新直接導入SQL中創建的表中。它遵循什麼路徑? –

相關問題