PreparedStatement 只对数据库进行临时更改还是可以使其永久更改?
Does PreparedStatement only make temporary changes in database or can I make it permanent?
我对整个 "using both Java and SQL at once" 这件事还很陌生,我似乎找不到解决这个问题的方法。我通过 Workbench 在服务器上创建了一个数据库,现在我正在使用它的 Netbeans 中创建一个简单的应用程序。我试图创建会改变我的数据库的 PreparedStatement,但我发现只要我保留我的应用程序,任何更改都会持续 运行.. 所以我是这样做的:
PreparedStatement change2 = connect.prepareStatement("UPDATE database.table1 (column1) VALUES(?) WHERE ID = ?");
change2.setInt(1, int2);
change2.setInt(2, int3);
change2.executeUpdate();
抱歉我给所有东西命名的方式,但我是用我自己的语言命名的,我想更改它以便更容易发现任何错误 + 名称在这里并不是那么相关,因为我知道它有效我只希望它是永久的..
这是一个错误还是什么,或者我只是忘记了一些东西来让它持续下去?
提前感谢您的帮助:)
如果您在独立模式下使用 Java,您可能在任何地方都有一个 Connection 对象。您必须使用
提交更改
connection.commit();
http://docs.oracle.com/javase/7/docs/api/java/sql/Connection.html
请看这里的例子:http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html。
如果您已将 "AutoCommit" 设置为 false,即 "con.setAutoCommit(false);",如上述 link,更改将不会提交到数据库。您必须像示例中那样显式调用 "con.commit();"。
我对整个 "using both Java and SQL at once" 这件事还很陌生,我似乎找不到解决这个问题的方法。我通过 Workbench 在服务器上创建了一个数据库,现在我正在使用它的 Netbeans 中创建一个简单的应用程序。我试图创建会改变我的数据库的 PreparedStatement,但我发现只要我保留我的应用程序,任何更改都会持续 运行.. 所以我是这样做的:
PreparedStatement change2 = connect.prepareStatement("UPDATE database.table1 (column1) VALUES(?) WHERE ID = ?");
change2.setInt(1, int2);
change2.setInt(2, int3);
change2.executeUpdate();
抱歉我给所有东西命名的方式,但我是用我自己的语言命名的,我想更改它以便更容易发现任何错误 + 名称在这里并不是那么相关,因为我知道它有效我只希望它是永久的..
这是一个错误还是什么,或者我只是忘记了一些东西来让它持续下去? 提前感谢您的帮助:)
如果您在独立模式下使用 Java,您可能在任何地方都有一个 Connection 对象。您必须使用
提交更改connection.commit();
http://docs.oracle.com/javase/7/docs/api/java/sql/Connection.html
请看这里的例子:http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html。
如果您已将 "AutoCommit" 设置为 false,即 "con.setAutoCommit(false);",如上述 link,更改将不会提交到数据库。您必须像示例中那样显式调用 "con.commit();"。