当前位置: 首页 > 知识库问答 >
问题:

SQLite未在JDBC驱动程序中实现[重复]

狄玮
2023-03-14

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

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个答案

缑永年
2023-03-14

问题很可能出现在PST中。执行(qwerty) 因为PreparedStatement。在SQLite JDBC驱动程序中未实现executeQuery(String)。

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

PreparedStatement。exequteQuery(String)抛出一个SQLException(“未由SQLite JDBC驱动程序实现”)

SQLite JDBC驱动程序未实现的回答中也描述了这种行为。在SQLite JDBC驱动程序中未实现executeQuery(String sql)。

您可以只使用psts.executeQuery();resp.psts.executeUpdate();这里不带参数,因为在创建准备好的语句时已经定义了Query。

顺便说一句,确保始终关闭您的预处理语句和结果集。有关解释,请参见我是否需要关闭PreparedStatement

 类似资料:
  • 我有一个表超过5百万行,我需要更新字段在每一个基于字段在同一个表内。 但是我得到了这个错误: 不是由SQLite JDBC驱动程序实现的 我正在使用sqlite-jdbc-3.8.11.2。jar下载地址:https://bitbucket.org/xerial/sqlite-jdbc/downloads. 我知道我可以使用以下SQL查询: 但这需要很长时间,我知道更新会更快。那么,我有什么选项来

  • 问题内容: 我有一个包含用户信息的数据库,我想创建一个公共静态变量,以便在任何给定时间返回数据库整数,而不必为每个整数都做一个空,但这给了我这个错误: 这是我的代码: 有人知道我在做什么错吗?我尝试使用Google的东西,但是更改代码将我从一个错误转移到了另一个错误…因此,我现在还不确定。 我正在运行JDBC驱动程序sqlite-jdbc-3.8.11.2.jar 问题答案: 未实现。我想你只是想

  • 在本教程中,http://www.sqlitetutorial.net/sqlite-java/sqlite-jdbc-driver/,关于将sqlite与java结合使用,首先从以下网站下载JDBC驱动程序,https://bitbucket.org/xerial/sqlite-jdbc/downloads/.然后使用Maven构建系统将驱动程序添加到项目中。 我环顾四周,看不出如果你使用Gra

  • 如何将Crystal Reports与ucanaccess jdbc驱动程序一起使用?我得到“未找到驱动程序”错误。我将ucanaccess jar文件复制到程序文件(C:\program files(x86)\Business objects\common\3.5\java)中的业务对象,编辑了crconfig.xml文件,并且已经在Crystal Reports中配置了JDBC(JNDI)。M

  • 在Eclipse BIRT数据资源管理器中为查询生成器添加JDBC数据库连接: 选择“查询生成器的JDBC数据库连接” 就这样。我可以使用此数据源来使用数据集。 下一个。 我希望使用更灵活的“JDBC数据源”,而不是以前成功使用的“查询生成器的JDBC数据库连接”。哦,我看到MySQL没有驱动程序类-Derby和Sample只有两个默认条目。 似乎JDBC驱动程序的有效注册没有添加(或注册?)司机

  • 我正在尝试将Java程序连接到远程Oracle数据库。在网上做了一些研究之后,我决定最简单的方法是使用Oracle JDBC驱动程序。我下载并运行了jar文件,得到了消息“****JCE UNLIMITED STRENGTH已安装*****”问题是,当我尝试将驱动程序添加到我的类路径(javac-classpath ojdbc8.jar Connect.java)时,我不断收到一条错误消息,说“包