java更新sql 无效

来源:百度知道 编辑:UC知道 时间:2024/09/18 07:20:25
我要更新一条记录,下面是我的方法;

这是我的方法:
public static void updateData(User user){
classforname();
Connection connection = null;
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=demo";
String sqlName = "sa";
String sqlPass = "sa";

try {
connection = java.sql.DriverManager.getConnection(url,sqlName,sqlPass);
connection.setAutoCommit(false);
PreparedStatement statement = connection.prepareStatement
("update users set user_pass=?,user_sex=?,user_email=?,user_birthDay=?,user_phone,"
+"user_adderss=?,user_loginDate=? user_name=?");

int index = 1;
statement.setString(index++, user.getPassword());
statement.setString(index++, user.getSex());
statement.setString(index++, user.getEmail());
statement.setString(index++, user.getBirthDay());
statement.setString(index++, user.getPhone());
statement.setString(i

这个statement你也没有更新啊,只是把数据存到里面,没有执行更新操作statement.execute();

还有,楼下的不要误导,index没有错,++是使用完以后加1

程序中有很多是不必要些得比如int index = 1;
statement.setString(1,user.getPassword());
statement.setString(2, user.getSex());
statement.setString(3,user.getEmail());
statement.setString(4,user.getBirthDay());
statement.setString(5,user.getPhone());
statement.setString(6,user.getAdderss());
statement.setDate(7,user.getLoginDate());
statement.setString(8,user.getUserName());
这样些更容易懂些!你没有执行语句statement.executeUpdate();又怎么去给你更新数据呢!我觉得这段语句在程序中是不应该忘记的.

没有执行更新语句,statement.executeUpdate();
还有你的index 变量是从1开始的,statement.setString(index++, user.getPassword()); 第一条语句就错了,直接就是2了。
应该把index定义为0