【发布时间】:2016-12-06 00:46:42
【问题描述】:
我想使用 db2 从表中获取值并打印出结果。
这是我尝试使用的代码:
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;
public class connection {
public static void main(String[] argv) {
try {
Class.forName("COM.ibm.db2.jdbc.app.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 rset=null;
boolean found=false;
try {
conn = DriverManager.getConnection("jdbc:db2:sabarish","db2admin","Murugasaranam");
if (conn != null)
{
System.out.println("DB2 Database Connected");
}
else
{
System.out.println("Db2 connection Failed ");
}
pstmt=conn.prepareStatement("SELECT * FROM SYSCAT.COLUMNS WHERE TABSCHEMA= 'STD' AND TABNAME= 'inventory'");
rset=pstmt.executeQuery();
if(rset!=null)
{
while(rset.next())
{
found=true;
System.out.println("Class Code: "+rset.getString("clcode"));
System.out.println("Name: "+rset.getString("name"));
}
}
if (found ==false)
{
System.out.println("No Information Found");
}
} catch (SQLException e) {
System.out.println("DB2 Database connection Failed");
e.printStackTrace();
return;
}
}
}
它只打印列名。除了列名,我可以使用什么查询语句来获取结果? db2 select * from store.inventory
似乎也没有效果。
【问题讨论】:
-
无论如何我都不是 DB2 专家,但是为什么您在 JDBC 查询中省略了数据库名称?
-
有什么例外?究竟是什么问题?不工作是什么意思?
-
@TimBiegeleisen 我在网上看到的示例遵循这种格式。我自己对此很陌生。我今天才开始使用 DB2。
-
@javaguy 它不会打印出这些值。它只是给出列名。
-
上面的代码只是一个例子。我只关注查询语句。我试图找出如何使用 db2 查询类似于该示例的数据库。 'db2 select * from store.inventory' 和 `SELECT * FROM SYSCAT.COLUMNS WHERE TABSSCHEMA= 'STD' AND TABNAME= 'inventory' 是主要关注点。
标签: java database jdbc db2 db2-400