gpt4 book ai didi

java - 在Java中使用SQLite实现登录系统有很大困难

转载 作者:行者123 更新时间:2023-12-02 04:28:07 24 4
gpt4 key购买 nike

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
String query;
boolean login = false;
String username = jTextField1.getText();
String password = jTextField2.getText();
try{
query = "SELECT (cUsername AND cPassword) FROM Customer WHERE cUsername = '"+username+"' AND cPassword = '"+password+"'";
pst = conn.prepareStatement(query);
pst.setString(1, username);
pst.setString(2, password);
pst.executeQuery();

String userCheck = rs.getString(1);
String passCheck = rs.getString(2);

if((userCheck.equals(username)) && (passCheck.equals(password)))
{
login = true;
System.out.println("It actually works?!");
}
else
{
login = false;
System.out.println("Psyche, that's the wrong number!");
}

}
catch(Exception e){
System.out.println(e);
}

System.exit(0);

}

我目前在代码中实现登录系统时遇到困难。我试图从用户名和密码 jTextFields 检索文本,然后将它们查询到数据库,但它不起作用。目前我正在

java.lang.ArrayIndexOutOfBoundsException: 0

不幸的是我不知道为什么。任何帮助将不胜感激。

最佳答案

您的查询和背后的逻辑还有很多工作要做:

首先,如果你想要参数化查询,你必须使用'?'而不是值。然后 pst.setString 就可以工作了。

其次,您必须将 pst.executeQuery(); 影响到 ResultSet

query = "SELECT cUsername, cPassword FROM Customer WHERE cUsername = ? AND cPassword = ?";
pst = conn.prepareStatement(query);
pst.setString(1, username);
pst.setString(2, password);
ResultSet rs = pst.executeQuery();

if (rs.next()) {
String userCheck = rs.getString(1);
String passCheck = rs.getString(2);
}

关于java - 在Java中使用SQLite实现登录系统有很大困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31883528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com