在本例中,您可以看到在更新数据库中的记录时,如何获得受影响的行数或记录数。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>