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

sqlite:java.sql.sqlexception:ResultSet是否为type_forward_only?

梅宏盛
2023-03-14

在我提出问题之前,我尝试了所有的解决方法,但我都无法解决我的问题。有没有人能帮我找到解决方法?

我试图从表“email”中获取数据,但每次它都调用此异常

java.sql.sqlexception:ResultSet是TYPE_FORWARD_ONLY在org.sqlite.jdbc4.jdbc4resultset。first(jdbc4resultset。first(jdbc4resultset.java:402)在hmdao.emaildao.findString(emaildao.java:144)在hmproject.startingcontroller.initialize(startingcontroller.java:103)在javafx.fxml.fxmlloader.loadimpl(本机方法)在com.sun.glass.ui.win.winapplication.lambda$null$149(Winapplication.java:191)

这是我的代码:

 public Email FindString(String ID) {

        Email email = null;

        String querySelectEmployer = "SElECT Email,Password FROM Email";

        try {

            ResultSet resultSet = Dbaconnection.getConnection().createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY).executeQuery(querySelectEmployer);


            if (resultSet.first()) {

                email = new Email(resultSet.getString("Email"), resultSet.getString("Password"));
            }
            resultSet.close();

        } catch (SQLException ex) {
            ex.printStackTrace();
        }

        return email;

    }

共有1个答案

邵星河
2023-03-14

发生这种情况是因为first()引用了数据集中的“绝对位置”,该位置仅可用于游标结果集。

由于不需要重新定位,因此只需将光标移动到初始记录,将first()的调用替换为next()即可完成以下操作:

if (resultSet.next()) {
    email = new Email(resultSet.getString("Email"), resultSet.getString("Password"));
}
 类似资料:
  • 问题内容: Java中是否为null ? 问题答案: 如果Object为null,它将支持诸如的方法。但是,事实并非如此- 对null的任何方法调用都会导致。 这是Java语言规范在该主题上必须说的: 还有一个特殊的null类型,即表达式null的类型,没有名称。因为空类型没有名称,所以不可能声明空类型的变量或将其强制转换为空类型。空引用是空类型表达式的唯一可能的值。空引用始终可以转换为任何引用类

  • 如果指定的值为 null ,则返回 true ;否则返回 false。 使用严格等号运算符来检查 val 值是否等于 null 。 const isNull = val => val === null; isNull(null); // true

  • 如果一个对象看起来像一个Promise),则返回 true,否则返回 false 。 检查对象是不为 null ,它的 typeof 是否匹配 object 或 function ,如果它有.then属性,这也是一个 function 。 const isPromiseLike = obj => obj !== null && (typeof obj === 'object' || typ

  • 如果传递的值是一个对象,则返回一个布尔值。 使用 Object 构造函数为给定值创建对象包装。 如果该值为 null 或 undefined ,则创建并返回一个空对象。 否则,返回一个对应于给定值的类型的对象。 const isObject = obj => obj === Object(obj); isObject([1, 2, 3, 4]); // true isObject([]); //

  • 检查给定的参数是否是一个数字。 使用 typeof 来检查一个值是否为一个数字。 const isNumber = val => typeof val === 'number'; isNumber('1'); // false isNumber(1); // true

  • 检查给定的参数是否是一个函数。 使用 typeof 来检查一个值是否为一个函数。 const isFunction = val => typeof val === 'function'; isFunction('x'); // false isFunction(x => x); // true