[英]I am unable to insert a record into my table created in oracle database. What mistake am I doing?
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设置了类路径。 我在做什么错E? 还有其他我应该复制和粘贴的文件吗? 我只是一个初学者,请帮忙。 以及我在Editplus中的程序如何将更新直接定向到用SQL创建的表中。 它走什么路?
Oracle默认将自动提交设置为false。 从Oracle Sql Developer(或代码)将autocommit设置为true或从代码提交更改:
//before con.close()
con.commit();
或者,如果您想要设置为自动提交:
//after creating Connection
conn.setAutoCommit(true);
尝试通过调用conn.commit();
提交Record conn.commit();
另请参阅“ 为什么执行更新说”,在插入查询时更新了一行
main的最终代码应类似于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();
} 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();
}
您的Java代码和SQLDeveloper是否可能引用了不同的架构? 我建议做以下事情
con.commit();
之间int res=st.executeUpdate("insert into A1 values('1','tomato','10')");
和System.out.println(res+"record is inserted..");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.