数据库中的数据类型为varchar 50的大小
String passwordSQL[]=new String[1];
char passwordTemp1[]=new char[1];
char passwordTemp2[]=new char[1];
char passwordTemp3[]=new char[1];
String passwordOld,passwordNew1,passwordNew2;
passwordTemp1=jPasswordFieldOldPassword.getPassword();
passwordOld=new String(passwordTemp1);
passwordTemp2=jPasswordFieldNewPassword1.getPassword();
passwordNew1=new String(passwordTemp2);
passwordTemp3=jPasswordFieldNewPassword2.getPassword();
passwordNew2=new String(passwordTemp3);
if(passwordOld.equals("")){
JOptionPane.showMessageDialog(this,"请输入旧密码","错误",JOptionPane.ERROR_MESSAGE);
}else if(passwordNew1.equals("")){
JOptionPane.showMessageDialog(this,"请输入新密码","错误",JOptionPane.ERROR_MESSAGE);
}else if(passwordNew2.equals("")){
JOptionPane.showMessageDialog(this,"请输入确认密码","错误",JOptionPane.ERROR_MESSAGE);
}else if((passwordNew1.equals(passwordNew2)==false)|(passwordNew1.length()<6)){
JOptionPane.showMessageDialog(this,"两次输入的新密码不一致或密码不足六位\n请重新输入","错误",JOptionPane.ERROR_MESSAGE);
}else{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException ce){
System.out.println(ce);
}
try{
Connection con=DriverManager.getConnection("jdbc:odbc:assetManage");
String amendUser=manageFrame.amendUserTemp;
Statement s=con.createStatement();
ResultSet rs=s.executeQuery("select password from userId where userId='"+amendUser+"'");
while(rs.next()){
passwordSQL[0]=rs.getString(1);
}
if(passwordOld.equals(passwordSQL[0])==false){
JOptionPane.showMessageDialog(this,"旧密码输入错误,请重新输入","错误",JOptionPane.ERROR_MESSAGE);
}else{
PreparedStatement pstmt = con.prepareStatement(
"update userId set password=? where userId=?");
pstmt.setString(1, passwordNew1);
pstmt.setString(2, amendUser);
pstmt.executeUpdate();
JOptionPane.showMessageDialog(this, "密码修改成功", "成功",
JOptionPane.INFORMATION_MESSAGE);
pstmt.close();
rs.close();
con.close();
}
}catch(SQLException se){
System.out.println(se);
}
String passwordSQL[]=new String[1];
char passwordTemp1[]=new char[1];
char passwordTemp2[]=new char[1];
char passwordTemp3[]=new char[1];
String passwordOld,passwordNew1,passwordNew2;
passwordTemp1=jPasswordFieldOldPassword.getPassword();
passwordOld=new String(passwordTemp1);
passwordTemp2=jPasswordFieldNewPassword1.getPassword();
passwordNew1=new String(passwordTemp2);
passwordTemp3=jPasswordFieldNewPassword2.getPassword();
passwordNew2=new String(passwordTemp3);
if(passwordOld.equals("")){
JOptionPane.showMessageDialog(this,"请输入旧密码","错误",JOptionPane.ERROR_MESSAGE);
}else if(passwordNew1.equals("")){
JOptionPane.showMessageDialog(this,"请输入新密码","错误",JOptionPane.ERROR_MESSAGE);
}else if(passwordNew2.equals("")){
JOptionPane.showMessageDialog(this,"请输入确认密码","错误",JOptionPane.ERROR_MESSAGE);
}else if((passwordNew1.equals(passwordNew2)==false)|(passwordNew1.length()<6)){
JOptionPane.showMessageDialog(this,"两次输入的新密码不一致或密码不足六位\n请重新输入","错误",JOptionPane.ERROR_MESSAGE);
}else{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException ce){
System.out.println(ce);
}
try{
Connection con=DriverManager.getConnection("jdbc:odbc:assetManage");
String amendUser=manageFrame.amendUserTemp;
Statement s=con.createStatement();
ResultSet rs=s.executeQuery("select password from userId where userId='"+amendUser+"'");
while(rs.next()){
passwordSQL[0]=rs.getString(1);
}
if(passwordOld.equals(passwordSQL[0])==false){
JOptionPane.showMessageDialog(this,"旧密码输入错误,请重新输入","错误",JOptionPane.ERROR_MESSAGE);
}else{
PreparedStatement pstmt = con.prepareStatement(
"update userId set password=? where userId=?");
pstmt.setString(1, passwordNew1);
pstmt.setString(2, amendUser);
pstmt.executeUpdate();
JOptionPane.showMessageDialog(this, "密码修改成功", "成功",
JOptionPane.INFORMATION_MESSAGE);
pstmt.close();
rs.close();
con.close();
}
}catch(SQLException se){
System.out.println(se);
}
char passwordTemp1[]=new char[1];
char passwordTemp2[]=new char[1];
char passwordTemp3[]=new char[1];
为什么要按上面这样定义呢?
用String passwordSQL, passwordOld,passwordNew1,passwordNew2,passwordNew2;不好吗?
得到数据为:
passwordOld=jPasswordFieldOldPassword.getPassword();
......passwordSQL=rs.getString(1);
......
passwordOld=jPasswordFieldOldPassword.getText();
其它同理