Java 代码 批量更新密码
时间: 2024-09-25 11:14:36 浏览: 33
java Swing 文件批量上传 DEMO 源代码
5星 · 资源好评率100%
在Java中批量更新数据库中的用户密码通常涉及到数据访问层(如JDBC、Hibernate、MyBatis等)。这里以JDBC为例给出一个简单的示例:
```java
import java.sql.Connection;
import java.sql.PreparedStatement;
public class PasswordUpdater {
private static final String SQL_UPDATE_PASSWORD = "UPDATE users SET password = ? WHERE username = ?";
public void updatePasswords(String[] oldPasswords, String[] newPasswords, String... usernames) throws SQLException {
try (Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password");
PreparedStatement preparedStatement) {
for (int i = 0; i < usernames.length; i++) {
preparedStatement.setString(1, encryptPassword(newPasswords[i])); // 将新密码加密后设置
preparedStatement.setString(2, usernames[i]);
preparedStatement.addBatch();
}
preparedStatement.executeBatch(); // 执行批量更新
}
}
// 这里是一个假设的简单密码加密函数,实际应用中应使用安全的库如BCrypt
private String encryptPassword(String password) {
// 使用BCrypt或其他库对密码进行加密
return BCrypt.hashpw(password, BCrypt.gensalt());
}
}
```
在这个例子中,`updatePasswords`方法接受旧密码数组、新密码数组以及需要更新用户名的数组。它创建一个PreparedStatement并批量设置SQL更新语句的值。注意,实际操作中你需要处理异常,并且在生产环境中,密码应该先通过哈希和盐进行加密。
阅读全文