2017-06-12 175 views
1

我试图做一个登录代码。快速的解释是,我要显示在deatils页面的帐户的详细信息,但我不能这样做,因为错误总是显示该功能没有在JDBC驱动程序中实现没有在JDBC驱动程序中实现sqlite

JButton btnLogin = new JButton("Login"); 
    btnLogin.addActionListener(new ActionListener() { 
     @SuppressWarnings("deprecation") 
     public void actionPerformed(ActionEvent arg0) { 
      String query = "select Username,Password from Login where Username=? and Password=?"; 
      try{ 

       PreparedStatement pst = connDB.prepareStatement(query); 

       pst.setString(1,textFieldUN.getText()); 
       pst.setString(2, passwordField.getText()); 

       ResultSet rs = pst.executeQuery(); 
       int count= 0; 
       while(rs.next()){ 
        count++; 
       } 
       if(count == 1){ 
        JOptionPane.showMessageDialog(null, "Signed In"); 
        frame.dispose(); 
        Details details = new Details(); 
        details.setVisible(true); 

        String qwerty = " insert into LoginTemp select * from Login where Username = ? "; 
        PreparedStatement psts = connDB.prepareStatement(qwerty); 
        psts.setString(1, textFieldUN.getText()); 
        psts.executeQuery(qwerty); 
       }else{ 
        JOptionPane.showMessageDialog(null, "Incorrect Username and Password Try again"); 
       } 
       rs.close(); 
       pst.close(); 
      }catch(Exception e){ 
       JOptionPane.showMessageDialog(null, e); 
      } 

     } 
    }); 
+1

有什么功能?如果有连接,则存在SQLLite驱动程序。不清楚你在问什么。 – EJP

+0

connDB定义在哪里? –

+0

显示错误! –

回答

2

最有可能的问题是在psts.executeQuery(qwerty);中,因为PreparedStatement.executeQuery(String)未在SQLite JDBC驱动程序中实现。

JDBC驱动程序源代码:PreparedStatement.exequteQuery(String)

PreparedStatement.exequteQuery(String)抛出SQLException("not implemented by SQLite JDBC driver");

此行为的not Implemented by SQLite JDBC driverPreparedStatement.executeQuery(String sql)答案还描述未在SQLite的JDBC驱动实现。

您可以直接使用psts.executeQuery();或分辨率。 psts.executeUpdate();这里没有参数,因为在创建预准备语句时Query已经被定义。

Btw。确保你总是关闭你的PreparedStatement s和ResultSet s。 有关说明,请参见Do I need to close PreparedStatement

相关问题