String query="UPDATE table_name SET tab_attr1= ? WHERE tab_attr2= ?";
PreparedStatement preparedStatement=connection.prepareStatement(query);
preparedStatement.setString(1,"test1");
preparedStatement.setString(2,"test2");
//case_1
int count=preparedStatement.executeUpdate();
/*
case_2
preparedStatement.execute();
int count=preparedStatement.getUpdateCount();
*/
我是该领域的新手并且是一名Java开发人员
在我的测试用例中,两者都返回相同的内容 所以我的问题是两者之间是否存在差异 如果没有差异那么两种功能的需求是什么。 两种情况有什么区别..?
答案 0 :(得分:2)
来自文档:
PreparedStatement.html#executeUpdate()
在此PreparedStatement对象中执行SQL语句 必须是SQL数据操作语言(DML)语句,例如 INSERT,UPDATE或DELETE;或者什么都不返回的SQL语句, 例如DDL声明。
返回:(1)SQL数据操作语言(DML)语句的行数或(2)0表示不返回任何内容的SQL语句
基本上是这样的:
executeUpdate()
用于SQL INSERT,UPDATE,DELETE或DLL语句。execute()
可用于任何 SQL语句,之后您可以调用getUpdateCount()
。 由于您使用的是UPDATE,因此在您的情况下并不重要。应该没有区别。
答案 1 :(得分:2)
executeUpdate(String sql):此方法用于以某种方式更新数据库的SQL语句,返回一个int值,表示受查询影响的行数
execute(String sql):此方法可用于所有类型的SQL语句。如果您不知道SQL语句使用哪种方法,那么此方法可能是最佳选择。 还有executeQuery(String sql):这个方法用于从数据库中检索一些数据的SQL语句。这个方法用于从数据库中获取一些数据的select查询