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();
    }
}

そして私はテーブルを次のように作成しました:

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

Java progをコンパイルして実行すると、「1レコードが挿入されました..」と表示されますが、SQLdeveloperでテーブルを開くと、テーブルに更新が見つかりません。それらはすべてヌルです!ojdbc-6.jar のクラスパスも設定しました。私は彼女に何の間違いをしているのですか?コピーして貼り付ける必要がある他のファイルはありますか? 私は初心者なので、親切に助けてください。また、Editplus の私のプログラムは、更新を SQL で作成されたテーブルに直接送信する方法を教えてください。それはどのような道をたどりますか?

4

3 に答える 3

4

Oracle では、デフォルトで自動コミットが false に設定されています。Oracle Sql Developer (またはコード) から autocommit を true に設定するか、コードから変更をコミットします。

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

または、自動コミットに設定する場合:

//after creating Connection
conn.setAutoCommit(true);
于 2013-06-25T13:01:00.260 に答える
0

呼び出してレコードをコミットしてみてください conn.commit();

更新を実行する理由も参照してください。挿入クエリで1行更新されます

メインの最終的なコードは次のようになります 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();
}

于 2013-06-25T13:09:57.487 に答える