//编写增删改公共方法
public static int execute(Connection connection,PreparedStatement preparedStatement,String sql,Object[] params) throws SQLException {
//预编译的sql,在后面直接执行就可以了
preparedStatement = connection.prepareStatement(sql);
for (int i = 0; i < params.length; i++) {
//setObject,占位符从1开始,但是我们的数组是从0开始
preparedStatement.setObject(i+1,params[i]);
}
int updateRows = preparedStatement.executeUpdate(sql);
return updateRows;
}
//修改用户密码
@Override
public int updatePwd(Connection connection, int id, String password) throws SQLException {
PreparedStatement preparedStatement = null;
int execute = 0;
if(connection!=null){
String sql = "update smbms_user set userPassword = ? where id = ?";
Object params[] = {password,id};
execute = BaseDao.execute(connection, preparedStatement, sql, params);
BaseDao.closeResource(null,preparedStatement,null);
}
return execute;
}
执行SQL语句的方式是带有占位符的,但是执行修改操作的时候却用了executeUpdate(sql),正确应该执行executeUpdate()
int updateRows = preparedStatement.executeUpdate(sql);把sql删除即可。