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

从db2获取Resultset

明宜年
2023-03-14
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.sql.Statement;

public class Db2{
    public static void main(String[] argv) {
        try {
            Class.forName("com.ibm.db2.jcc.DB2Driver");
        }
        catch (ClassNotFoundException e) {
            System.out.println("Please include Classpath  Where your DB2 Driver is located");
            e.printStackTrace();
            return;
        }
        System.out.println("DB2 driver is loaded successfully");
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs=null;
        Statement stmt = null;
        boolean found=false;
        String name = "";
        try {
            conn = DriverManager.getConnection("jdbc:db2://server:900/MyDB"
                    +":user=user1;password=swim;"+
                     "traceLevel=" +
                     (com.ibm.db2.jcc.DB2BaseDataSource.TRACE_ALL) + ";");
            if (conn != null)
            {
                System.out.println("DB2 Database Connected");
            }
            else
            {
                System.out.println("Db2 connection Failed ");
            }

            // Create the Statement
            stmt = conn.createStatement();                                            
            System.out.println("**** Created JDBC Statement object");

            // Execute a query and generate a ResultSet instance
            rs = stmt.executeQuery("SELECT * FROM VIRTUALMACHINE");                    
            System.out.println("**** Created JDBC ResultSet object");

            device
            while (rs.next()) {
              name = rs.getString(2);
              System.out.println("Name = " + name);
            }
            System.out.println("**** Fetched all rows from JDBC ResultSet");
            // Close the ResultSet
            rs.close();
            System.out.println("**** Closed JDBC ResultSet");



        } catch (SQLException e) {
            System.out.println("DB2 Database connection Failed");
            e.printStackTrace();
            return;
        }
    }

}

我想知道为什么当我运行它时它不返回任何东西。当我将查询字符串从select VIRTUALMACHINE from mydb更改为“select*from syscat.columns WHERE tabschema='gga'AND tabname='VIRTUALMACHINE'fetch first 10 rows only”时,我得到一个结果。在这种情况下

DB2驱动程序成功加载DB2数据库连接****创建JDBC语句对象****创建JDBC ResultSet对象名称=GGA名称=GGA名称=GGA名称=GGA
****从JDBC ResultSet提取所有行****关闭JDBC ResultSet

这差不多是对列的描述。我想知道为什么select VIRTUALMACHINE from mydb没有产生任何结果。这不是DB2中查询的方式吗?

共有1个答案

牟嘉
2023-03-14

当对象不存在时抛出SQLSTATE 42704。

from子句引用的是表名,而不是DB。表名可以是合格的,也可以是不合格的;并且从技术上讲,限定表名可以包括远程DB名。

你说这个行得通:

SELECT * 
FROM SYSCAT.COLUMNS 
WHERE TABSCHEMA= 'GGA' AND TABNAME= 'VIRTUALMACHINE' 
fetch first 10 rows only
select *
from GGA.VIRTUALMACHINE
 类似资料:
  • 我正在使用一个新的 java 应用程序,该应用程序适用于 db2 中无法更改的旧数据库。在其中一个表中,有包含 comp3 字符的 char(32) 列。 我们使用ibmdb2jdbctype4驱动程序阅读本专栏。当我们检查字节以解压缩字符时,我们发现无论何时bbdd中有一个值为25的字节,jdbc驱动程序都会将其恢复为值15。值为15的字节也会恢复为15的值,因此我们不知道如何解决这个不明确的值

  • 问题内容: 对于z / OS实体化查询表上的DB2,如何检索上次刷新时间? 该文档指出,在REFRESH期间DB2采取的操作之一是用刷新时间戳填充目录。 用刷新时间戳和具体化查询表的基数更新DB2目录 什么目录表和列包含此信息? 我一直在寻找它,以便将时间戳与其他资源进行比较,以查看自上次刷新以来时间戳是否已更改。如果自上次刷新以来其他资源已更改,则必须刷新MQT。 问题答案: 您可以在表 SYS

  • 问题内容: 我正在编写一个JSP / Servlet,并且试图获取URI的锚点部分,例如: 如何从我的请求中获得分数?显然行不通吗? 任何帮助都将受到欢迎。 问题答案: 这是不可能的,因为客户端不会将“锚定部分”发送到服务器 例如,这是Chrome提交后生成的确切请求(使用Wireshark记录): 看,没有#foobar。因此,服务器应用程序无法读取它。 您可以做一些JavaScript魔术,将

  • 问题内容: 我正在编写一个JSP / Servlet,并且尝试获取URI的锚点部分,例如: 如何从我的请求中获得分数?显然行不通吗? 任何帮助都将受到欢迎。 问题答案: 这是不可能的,因为客户端不会将“锚定部分”发送到服务器 例如,这是Chrome提交后生成的确切请求(使用Wireshark记录): 看,没有#foobar。因此,服务器应用程序无法读取它。 您可以做一些JavaScript魔术,将

  • 问题内容: 我可以从org.w3c.dom.Node获取完整的xpath吗? 说当前节点指向xml文档中间的某个位置。我想提取该元素的xpath。 我正在寻找的输出xpath是。节点xpath的父级。只需忽略具有表达式并指向同一节点的xpath。 问题答案: 没有获取XPath的通用方法,主要是因为没有一个通用XPath可以标识文档中的特定节点。在某些架构中,节点将由属性唯一标识(并且可能是最常见

  • 问题内容: HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(“http://my.server:8080/android/service.php"); 生成一个json字符串。我该如何从我的手机上获取?顺便说一句; 我已经将该库排除在外了,我可以在其中使用任何方法吗? 有更好的方法,