Java mysql中的登录表单
我正在使用Mysql netbeans。我已经创建了一个db表“userdetails\u summertrainingproject”。在登录表单中,我需要填写两个文件,一个是“UUId_JTextField”,另一个是“Password1_JPasswordField”。我想比较用户输入的密码值是否与用户输入的特定UUId的db中的密码值相同。UUid是唯一的Java mysql中的登录表单,java,mysql,database,netbeans,login,Java,Mysql,Database,Netbeans,Login,我正在使用Mysql netbeans。我已经创建了一个db表“userdetails\u summertrainingproject”。在登录表单中,我需要填写两个文件,一个是“UUId_JTextField”,另一个是“Password1_JPasswordField”。我想比较用户输入的密码值是否与用户输入的特定UUId的db中的密码值相同。UUid是唯一的 try{ Class.forName("com.mysql.jdbc.Driver");
try{
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql","root","");
String query = "SELECT password FROM userdetails_summertrainingproject WHERE UUId=?;";
PreparedStatement preparedStatement = conn.prepareStatement(query);
preparedStatement.setString(1,UUId_JTextField.getText());
ResultSet rs = preparedStatement.executeQuery();
char[] password1 = Password1_JPasswordField.getPassword();
String pass1 = new String(password1);
if(rs.getString(query)==pass1){
JOptionPane.showMessageDialog(null, "Logged in successfully");
}
}
catch(Exception e){
System.out.println("Exception in Login:"+e.getMessage());
}
上面是我正在使用的代码。
例外情况是:
登录时出现异常:“从userdetails\u summertrainingproject中选择密码,其中UUId=?;”列没有找到
尝试此代码,您错过了
rs.next()
我认为最好使用另一种方法来获取连接字符串。否则,您必须一次又一次地编写下面的代码
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3307/mysql", "root", "");
编辑:
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql", "root", "");
String query = "SELECT UUId FROM userdetails_summertrainingproject;";
PreparedStatement preparedStatement = conn.prepareStatement(query);
ResultSet rs = preparedStatement.executeQuery();
rs.next();
String UUId = rs.getString("UUId");
System.out.println("UUId " + UUId);
} catch (Exception e) {
e.printStackTrace();
}
}
创建一个类并添加此代码。然后检查此代码是否正常工作。
请确保端口、数据库名称、用户和密码正确
如果这是givecom.mysql.jdbc.CommunicationsException:通信链路故障
。很可能您的端口不正确
我正在使用这两个库
try{
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql","root","");
String query="SELECT password FROM tryingtable WHERE name=?;";
PreparedStatement prepstmt=conn.prepareStatement(query);
prepstmt.setString(1,jtf.getText());
ResultSet rs=prepstmt.executeQuery();
rs.next();
String result=rs.getString("password");;
char[] pass = jpf.getPassword();
String password1= new String(pass);
if(result.equals(password1))
JOptionPane.showMessageDialog(null, "go!!");
else
JOptionPane.showMessageDialog(null, "no!!");
}
catch(Exception e){
System.out.println("Exception:"+e.getMessage());
e.getStackTrace();
}
当您想要比较密码字段和文本字段时,请使用
上面的代码将以字符串形式为您提供密码字段值,然后
if(pass_string.equals(textfield))
JOptionPane.showMessageDialog("Password match");
else
JOptionPane.showMessageDialog("Password did not match");
仍然存在相同的错误:登录:列“从userdetails\u summertrainingproject中选择密码,其中UUId=?;”中出现异常找不到。请检查:当我在计算机中运行此代码时,它正在工作。你可以把完整的堆栈跟踪错误消息。找出你出错的那一行,然后试着找出它为什么来自那一行。当你运行这段代码时,在弹出式日志成功登录的地方,代码的那一部分也工作了吗?。下面是当我尝试使用登录代码(代码的第二部分)异常链接时出现的总异常列表:请帮助我仅检查您的代码
如果
块包含部分。它工作正常。summertrainingproject.summertrainingproject$3.actionPerformed(summertrainingproject.java:322)322行是什么。这是您应该检查的线路。@SupunKavinda感谢您的支持。它真的帮助了我。
char[] pass_char = passwordField.getPassword();
String pass_string = new String(pass_char);
if(pass_string.equals(textfield))
JOptionPane.showMessageDialog("Password match");
else
JOptionPane.showMessageDialog("Password did not match");