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

在Java中使用SQLite实现登录系统有很大困难,java,database,sqlite,Java,Database,Sqlite,我目前在代码中实现登录系统时遇到困难。我试图从用户名和密码jTextFields中检索文本,然后将它们查询到数据库,但它不起作用。目前我正在 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { String query; boolean login = false; String username =

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

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);

}                                        

不幸的是,我不知道为什么。非常感谢您的帮助。

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

首先,如果需要参数化查询,必须使用“?”而不是值。然后pst.setString将工作

其次,您必须影响
pst.executeQuery()
结果集

java.lang.ArrayIndexOutOfBoundsException: 0

查询不应该是
select cUsername,cPassword
,比如
query=“select(cUsername,cPassword)FROM Customer,其中cUsername=”“+username+”,cPassword=”+password+”
您在哪里定义了
rs
?是否应该有
ResultSet rs=pst.executeQuery()
?非常感谢您的帮助。现在我关闭了java.sql.SQLException:ResultSet,毫不奇怪,我不知道为什么。我想我刚刚知道我是在(rs.next()){userCheck=rs.getString(1);passCheck=rs.getString(2);}编辑以添加这个rs.next(我忘了它)时做的
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);
}