- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图弄清楚为什么 ResultSet.next() 在我编写的 Java 代码中永远不会成立,在执行 SQL 查询后,该查询将 Oracle 11g 表中的结果返回到该 ResultSet 中...看起来好像在 java.sql.Connection 中使用PreparedStatement 时,代码无法正确获取返回的 ResultSet 内容。感谢任何帮助,详细信息如下:
表:
CREATE TABLE "SHANDB"."ABSCLOBS"
( "ID" NUMBER,
"XMLVAL" "XMLTYPE",
"IDSTRING" VARCHAR2(20 BYTE)
)
数据:
INSERT INTO absclobs VALUES ( 1,
xmltype('<?xml version="1.0"?>
<EMP>
<EMPNO>221</EMPNO>
<ENAME>John</ENAME>
</EMP>', '1'));
INSERT INTO absclobs VALUES (2,
xmltype('<?xml version="1.0"?>
<PO>
<PONO>331</PONO>
<PONAME>PO_1</PONAME>
</PO>', '2'));
我正在运行的 Java 代码是为了从上面获取值来测试代码:
public static void main(String[] args) throws Exception {
try {
String url = "jdbc:oracle:thin:@//localhost:1521/xe";
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
String user = "shandb";
String password = "test";
Class.forName(driver);
connection = DriverManager.getConnection(url,user, password);
String selectID1 = "SELECT a.xmlval.getClobval() AS poXML FROM absclobs a where idstring=? and id=? ";
PreparedStatement preparedStatement = connection.prepareStatement(selectID1);
preparedStatement.setString(1, "1");
preparedStatement.setInt(2, 1);
rowsUpdated = preparedStatement.executeQuery();
while(rowsUpdated.next()){
String clobxml = rowsUpdated.getString(1);
System.out.println(clobxml);
}
} catch (ClassNotFoundException cnfe) {
System.err.println(cnfe);
} catch (SQLException sqle) {
System.err.println(sqle);
}
finally{
System.out.println("Rows affected: " + rowsUpdated);
connection.close();
}
}
上面的这部分代码永远不会运行,我不明白:
while(rowsUpdated.next()){
String clobxml = rowsUpdated.getString(1);
System.out.println(clobxml);
}
...但是最终的打印语句显示 ResultSet 不为空:
Rows affected: oracle.jdbc.driver.OracleResultSetImpl@15f157b
有谁知道为什么我无法显示实际检索到的 XML clob 内容,和/或为什么上面的 while block 永远不会为 true?
谢谢:)
最佳答案
您的诊断不正确 - 这是:
Rows affected: oracle.jdbc.driver.OracleResultSetImpl@15f157b
不显示结果集非空。它只是显示 rowsUpdated
的值是对 oracle.jdbc.driver.OracleResultSetImpl
实例的引用,它不会覆盖 toString()
。这很容易为空。
我怀疑问题出在你的WHERE
上子句不匹配任何记录。为了诊断,我建议您将其更改为:
String selectID1 = "SELECT a.xmlval.getClobval() AS poXML FROM absclobs a";
(当然,并摆脱参数设置调用)。这样您应该能够看到表中的所有值。然后您可以努力找出为什么您的WHERE
子句没有按预期工作。
(顺便说一句,不清楚为什么你没有在问题的代码中声明 connection
或 rowsUpdated
。它们绝对应该是局部变量......)
关于java - ResultSet.getNext() 不适用于PreparedStatement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14128621/
我想实现一个 LinkedListremove 方法,该方法可以删除任何特定位置的项目,但在本例中,我最感兴趣的是删除列表开头(第 0 个位置)的项目。 我的代码适用于 n 大于零的值,因此我为 n=
我是 Java 和 StackOverflow 的新手,所以请不要刻薄。我真的很感激一些帮助。先谢谢你。 我觉得这真的很简单,我已经尝试过一百万种不同的方法,但它不起作用。 我正在尝试获取一个文本文件
我试图弄清楚为什么 ResultSet.next() 在我编写的 Java 代码中永远不会成立,在执行 SQL 查询后,该查询将 Oracle 11g 表中的结果返回到该 ResultSet 中...
我有一个带有静态方法 getNext() 的单例类 public class Sequence { private static Sequence instance; private s
我正在使用树的 SNMPWalk 的 GetNext 操作示例之一。我正在使用异步变体来收集 OID - # GETNEXT Command Generator from pysnmp.entity.
我正在为交换链表中节点的算法编写伪代码,并有一个简单的问题:.next 和 .getNext() 之间有区别吗? 其中一个是我知道的方法,但我想知道它们是否相同: 如果不是,您能解释一下为什么其中一个
这更像是一个设计层面的问题。我有一个持久类,它通过 SQL 查询从数据库中查询记录,并通过一个名为 getNext() 的成员函数返回给调用者,该函数的签名如下: int getNext(); //
我正在扩展 LoadFunc。在 getNext 函数中,我想跳过在某些条件下返回元组的步骤——这样我只能加载数据文件的样本。我尝试为不想返回的行返回 null,但问题是该方法在返回第一个 null
tensorflow 推荐使用 tf.data.Dataset 导入数据。如果图像的验证大小与训练图像不同,是否可以将其用于验证和训练? import tensorflow as tf import
您好,我的数据集迭代器突然遇到问题。我已经看到关于堆栈溢出的类似问题,但没有一个能够对我的情况有所帮助,所以我将其发布在这里。 当我在训练后创建验证迭代器时,我的代码运行完美。但现在我想看看损失在测试
这是《Java 中的数据结构和算法(第六版)》一书的代码片段,该方法是 LinkedPositionalList 实现的一部分。我不明白该行到底是什么意思: “if (node.getNext( )
我正在尝试创建一个简单的 snmp GETNEXT 查询来仅检索树层次结构中给定 OID 的下一项。 例如,我想要的是: 当我使用 OID 1.3.6.1.2.1.1 (iso.org.dod.int
我正在尝试解析带有 html 代码的页面,如下所示: .. Identified Header... ... ... ... .. 我正在使用 Python 代码通过 lxml 解
在 C++ 中,我经常使用以下模式: while (int i = getNextElementPlease()) { printf("%d\n", i); } 但是在 python 中我必须
我对java相当陌生,希望有人能够帮助我。我正在尝试创建一个链接列表来比较中奖号码和玩家号码,因为您可以在我的彩票计划中使用不同的名称购买多张彩票。该程序可以工作,但它只输出最后一张票的结果,而不是全
我在进行预测时为输入数据构建了一个数据集管道。但是,当我尝试代码时,发生了错误 FailedPreconditionError (see above for traceback): GetNext()
我建立了一个专门的类来构建、训练、保存然后加载我的模型。保存是通过 tf.saved_model.simple_save 完成的,然后通过 tf.saved_model.loader.load 恢复的
我已经开始为我们的一个项目使用 Apache Pig。我必须创建自定义输入格式来加载我们的数据文件。为此,我遵循了这个例子 Hadoop:Custom Input format .我还创建了自定义 R
我想要一个通用解决方案,但作为示例,假设我有一个 IEnumerable ,其中有些可以解析为整数,有些则不能。 var strings = new string[] { "1", "2", "not
这是来自 John Resig's blog关于 JSON 响应被盗: // From Joe Walker function Array() { var obj = this; var in
我是一名优秀的程序员,十分优秀!