如何使用 jdbc 和 java-swing 从特定列中检索完整的 xml(DataType as XMLTYPE)
Posted
技术标签:
【中文标题】如何使用 jdbc 和 java-swing 从特定列中检索完整的 xml(DataType as XMLTYPE)【英文标题】:How to retrieve the complete xml (DataType as XMLTYPE) from the specific column using jdbc and java-swing 【发布时间】:2017-05-19 04:19:18 【问题描述】:我有一个名为 student 的表名,在该表中我有一列名为 student_xml,另一列是 student_id
所以我编写了以下代码来从数据库中检索数据。
select student_xml from student where student_id='2301C8';
当我在 sql server 中执行此查询时,它工作正常,但是当我尝试使用 swing 应用程序(java 数据库连接)获取空值时。
String strxa = tfx1.getText(); //here i will get the student id from user.
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@//host:1521/service","username","pwd");
Statement st =con.createStatement();
String str3 ="select student_xml from student where student_id='"+strxa+"'";
System.out.println(str3);
ResultSet rs = st.executeQuery(str3);
System.out.println(str3);
if (rs.next())
XMLType poxml = (XMLType)rs.getObject(1);
System.out.println(poxml); //when i try to print this no output in console
String poString =poxml.getStringVal();
System.out.println(poString); when i try to print this no output in console
//Sets Records in TextFields.
area.setText(poString);
对于 XMLTYPE 数据,我们还有什么其他的方法可以在文本区域显示这些东西吗?
【问题讨论】:
什么 确切地为空?请说清楚。这个问题与 Swing 本身没什么关系,仅供参考。 null 表示它的选择没有任何价值,所以我得到的打印响应为 null,现在根据 MarrieteCowby12 答案更新了代码,但现在我得到了异常 @Hovercraft Full Of Eels 【参考方案1】:下面是从 XMLTYPE 结果集中接收数据的正确代码
添加以下导入 - import oracle.xdb.XMLType;
使用下面的while循环,它将检索XMLTYPE并将其存储在一个名为poString
的字符串中。
while(rs.next())
// get the XMLType
XMLType poxml = (XMLType)rs.getObject(1);
// get the XML as a string...
String poString = poxml.getStringVal();
【讨论】:
执行时出现以下异常,线程“AWT-EventQueue-0”中的异常 java.lang.NoClassDefFoundError: oracle/jdbc/internal/XMLTypeIntf at java.lang.ClassLoader.defineClass1( Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) 我也添加了 xdb6 和 ojdbc14 jar 相同的异常,我试图在控制台中打印 poxml 和 poString,它没有被执行/打印 @MarrieteCowby12 引起:java.lang.ClassNotFoundException: oracle.jdbc.internal.XMLTypeIntf 错误也得到 我将此答案标记为正确,因为它正确回答了我的问题? 错误 java.lang.NoClassDefFoundError 可能是由于类路径配置不正确造成的,请验证您的类路径是否正确?以上是关于如何使用 jdbc 和 java-swing 从特定列中检索完整的 xml(DataType as XMLTYPE)的主要内容,如果未能解决你的问题,请参考以下文章