如何使用 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)的主要内容,如果未能解决你的问题,请参考以下文章

从特岗教师的需求金字塔,重新理解乡村教育和科技

Java-Swing中实现富文本编辑器

java-swing编程,实现计算器——支持四则运算

java-swing 给文本区jtextarea怎么加个滚动条?

Spring数据访问和数据访问层与业务或服务层之间的交互

如何做批处理 jdbc/insert!和 jdbc/更新!在 Clojure 中使用 postgresql?