updateCount()和executeUpdate()是否返回相同内容

时间:2016-11-23 13:57:04

标签: java mysql jdbc

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开发人员

在我的测试用例中,两者都返回相同的内容     所以我的问题是两者之间是否存在差异     如果没有差异那么两种功能的需求是什么。     两种情况有什么区别..?

2 个答案:

答案 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查询