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

使用rs(下),但在SQLiteTYPE_FOWARD_ONLY

郭建华
2023-03-14

在使用以下驱动程序在简单CRUD java程序上成功使用mysql数据库后,我尝试使用SQLite:http://cdn.bitbucket.org/xerial/sqlite-jdbc/downloads/sqlite-jdbc-3.7.2.jar我得到了这个错误:

java.sql.SQLException: SQLite only supports TYPE_FORWARD_ONLY cursorsException in thread "AWT-EventQueue-0" java.lang.NullPointerException
at tes.MainForm.Tampil(MainForm.java:31)

主窗体。爪哇:

private void Tampil(){
    try{
        int row = tabel.getRowCount();
        for(int i=0;i<row;i++){
            tabeldata.delete(0, row);
        }
        String sql;
        sql = "SELECT * from asu";
            ResultSet rs = c.script.executeQuery(sql); // line 31

        while(rs.next()){
            DataPegawai d = new DataPegawai();
            d.setNo(rs.getInt("no"));
            d.setNip(rs.getInt("nip"));
            d.setNama(rs.getString("nama"));
            d.setDivisi(rs.getString("divisi"));
            d.setLevel(rs.getInt("level"));
            tabeldata.add(d);
        }
    }catch(SQLException e){
        System.err.print(e);
    }
}
public MainForm() { 
   initComponents();
    c = new DBConnection();
    tabeldata = new TabelData();
    tabel.setModel(tabeldata);
    Tampil();
}     

数据库连接。爪哇:

public class DBConnection {      
    Connection c = null;
    Statement script; 
    public DBConnection(){
        try{
        Class.forName("org.sqlite.JDBC");
            c = DriverManager.getConnection("jdbc:sqlite:C:/titit2.db");
            script = c.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
            System.out.println("Koneksi Sukses");
        }catch(  SQLException | ClassNotFoundException ex){
            System.err.print(ex);
        }
    }
}

我想我只使用rs(下),我错过了什么吗?

共有1个答案

岳浩穰
2023-03-14

DBConnection中,不应指定ResultSet。TYPE_SCROLL_INSENSITIVE,但指定ResultSet。TYPE_FORWARD_ONLY,因为SQLite不支持滚动不敏感(或滚动敏感)。

问题不是发生在第31行,而是发生在DBConnection中,您忽略了SQLExc0019,然后继续使用脚本字段,该字段为null。然后在第31行触发一个NullPointerExcema

这并不清楚,因为1)您忽略了SQLExc0019和2)使用不添加换行符的System.out.print。相反,您应该使用printStackTrace()

 类似资料:
  • 问题内容: 我正在尝试使用异步响应构建REST Web服务。 我已经在网上解决了这个错误,但是,没有一种解决方案对我有用。我不确定如何去做。 这是REST服务的代码,它具有AsyncResponse,并且取自,我将在下面提供该文件中指定的jar文件。问题是,在部署战争时,我遇到一个例外: 我的课如下: 我的Maven文件如下: 问题答案: 是 当应用程序试图调用一个抽象方法抛出 。 是中的抽象方法

  • webresources定义如下。这个类是由NetBeans自动添加的。

  • 问题内容: 我只是熟悉使用JAX-RS在Java中实现REST Web服务,因此遇到了以下问题。我的资源类之一要求访问存储后端,该后端在接口后被抽象化。我想将当前实例注入到服务REST请求的资源类中,并且我认为这样做的一种好方法是使用批注和适当的类。这是我到目前为止所拥有的: 在: 在: 我用来自动发现提供程序和资源类,并且根据日志,它很好地拾取了该类(故意遗漏了时间戳和不必要的内容): 但是,资

  • 问题内容: 我想使用Android设备上的JavaComm API类通过串行端口发送信号,这是我的想象: 1- Android设备将是:Archos 3.2,它具有android 2.2和USB主机模式。 2-在我的Android应用程序中包含RxTx lib软件包。并使用Android NDK包含RxTx本机代码。 3- usb-> serial的短电缆。 您能告诉我我可能会遇到的问题吗? 问题

  • 这并没有改变结果,而不是失败(应该失败),帖子仍然得到响应。我知道这些注释仍然需要一个验证器来验证它们。我是(假的?)在Jboss提供这样一个验证器的印象中。

  • 我试图使用JAX-RS从REST服务下载一个文件。这是我的代码,它通过发送GET请求调用下载: 然而,我面临着将响应转换为实际文件对象的问题。所以我所做的是以下几点: 创建的文件无效,我调试了代码并注意到输出包含一个类似的字符串(大得多): Superstore.TWB YSI 7 D M 3 F 编辑:引用关于HTTP响应的REST API引用: 反应体 以下内容之一,具体取决于工作簿的格式: