Java如何知道更新数据库表中的数据时受影响的行数?
在本例中,您可以看到在更新数据库中的记录时,如何获得受影响的行数或记录数。Statement或PreparedStatement的executeUpdate()方法返回一个整数值,它告诉我们有多少记录受到执行命令的影响。
注意,当executeUpdate()方法的返回值为0时,它可能意味着以下两种情况之一:(1)执行的语句是影响零行的update语句,或者(2)执行的语句是DDL语句,比如在数据库中创建表的语句。
package org.nhooo.example.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; public class HowManyRowExample { private static final String URL = "jdbc:mysql://localhost/nhooo"; private static final String USERNAME = "root"; private static final String PASSWORD = ""; public static void main(String[] args) throws Exception { try (Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD)) { String sql = "UPDATE books " + "SET title = ?, published_year = ? " + "WHERE isbn = ?"; PreparedStatement ps = connection.prepareStatement(sql); ps.setString(1, "Java 8 in Action, First Edition"); ps.setInt(2, 2014); ps.setString(3, "9781617291999"); int rows = ps.executeUpdate(); System.out.printf("%d row(s) updated!", rows); } } }
上面的代码片段的结果:
1 row(s) updated!
Maven依赖
<!-- https://search.maven.org/remotecontent?filepath=mysql/mysql-connector-java/5.1.47/mysql-connector-java-5.1.47.jar --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency>