帮忙看下这个函数,不知道哪里出了问题,这个注册模块放到程序里面,不能注册两次,当第一次注册成功后,第二次注册一直无法正常从输入框正常读取数据,读到的一直为空
public void Register() {
String z_user=String.valueOf(tfUser.getText());
String z_pass=String.valueOf(tfPass.getText());
tfUser.setText("");
tfPass.setText("");
Connection conn = null;
PreparedStatement psta=null;
ResultSet rs = null;
String sql = null;
try {
conn = DriverManager.getConnection(url,user,pass);
//这个sql语句的功能是判断输入的账号已在数据库中,已被注册
sql = "select r_account from register where r_account=?";
psta = conn.prepareStatement(sql);
psta.setString(1, z_user);
rs = psta.executeQuery();
rs.next();
if(rs.next()) { //若输入的账号已被注册,则进行相应提示,重新输入
tfUser.setText("");
tfPass.setText("");
JOptionPane.showMessageDialog(null, "该用户已注册,请重新输入用户名!!",
"提醒!",JOptionPane.INFORMATION_MESSAGE);
}
else {
tfUser.setText("");
tfPass.setText("");
sql = "insert into register (r_account,r_password) values (?, ?)";
psta = conn.prepareStatement(sql);
psta.setString(1,z_user);
psta.setString(2,z_pass);
psta.executeUpdate();
dRegister1.setVisible(false);
JOptionPane.showMessageDialog(null, "注册成功",
"提醒!",JOptionPane.INFORMATION_MESSAGE);
}
}
catch(SQLException e) {
e.printStackTrace();
} finally {
try {
if(rs != null) {
rs.close();
}
if(psta != null) {
psta.close();
}
if(conn != null) {
conn.close();
}
} catch(SQLException e) {
e.printStackTrace();
}
}
}
用输出语句调试了下,发现第一次成功,账号密码都是正确读取的,为什么成功一次后,getText()读出来的 "" 空