Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何按原样显示或打印数据库表的内容?_Java_Sql_Sql Server 2008 - Fatal编程技术网

Java 如何按原样显示或打印数据库表的内容?

Java 如何按原样显示或打印数据库表的内容?,java,sql,sql-server-2008,Java,Sql,Sql Server 2008,我想使用Java代码从数据库中获取一个表。我尝试的示例代码只得到两列。我希望获取的数据与表中的数据完全相同。 我该怎么做 这个代码只给了我两行,并排- while (rs.next()) { System.out.println(rs.getString(4) + " " + rs.getString(6)); } 完整示例见- 并得到一个错误-请求的操作在仅向前的结果集上不受支持。这是因为您的代码只得到该行的2个值。请注意,rs.getString(4)的意思是,在第4列(使用基于0的索

我想使用Java代码从数据库中获取一个表。我尝试的示例代码只得到两列。我希望获取的数据与表中的数据完全相同。 我该怎么做

这个代码只给了我两行,并排-

while (rs.next()) {
System.out.println(rs.getString(4) + " " + rs.getString(6));

}
完整示例见-


并得到一个错误-请求的操作在仅向前的结果集上不受支持。

这是因为您的代码只得到该行的2个值。请注意,
rs.getString(4)
的意思是,在第4列(使用基于0的索引)获取当前行的值作为
字符串

如果要打印所有列,应编写其余的
rs.getXXXX()
,其中
XXXX
是列数据类型,如
getString()、getInteger()、getLong()等。请参阅此java以供参考。

使用此代码

Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(query);
ResultSetMetaData rsmd = rs.getMetaData();

int columnsNumber = rsmd.getColumnCount();
来源-

使用该代码后,可以像DBMS所显示的那样显示结果,如下所示-

ResultSetMetaData rsmd = rs.getMetaData();
int columnsNumber = rsmd.getColumnCount();                     

// Iterate through the data in the result set and display it. 

while (rs.next()) {
//Print one row          
for(int i = 1 ; i <= columnsNumber; i++){

      System.out.print(rs.getString(i) + " "); //Print one element of a row

}

  System.out.println();//Move to the next line to print the next row.           

    }
ResultSetMetaData rsmd=rs.getMetaData();
int columnsumber=rsmd.getColumnCount();
//遍历结果集中的数据并显示它。
while(rs.next()){
//打印一行

对于(int i=1;i我发布了一个类似问题的答案,但我相信这一个也相关,可能更相关。简而言之,我编写了一个简单的实用程序类,将db表行打印到标准输出(部分有趣,部分学习)。它可能对某些人有用(至少我希望如此)

以下是GitHub上代码repo的链接:

以下是基本用法:

// Create a connection to the database
Connection conn = DriverManager.getConnection(url, username, password);

// Just pass the connection and the table name to printTable()
DBTablePrinter.printTable(conn, "employees");
它应该打印如下内容:

Printing 10 rows from table(s) EMPLOYEES
+--------+------------+------------+-----------+--------+-------------+
| EMP_NO | BIRTH_DATE | FIRST_NAME | LAST_NAME | GENDER |  HIRE_DATE  |
+--------+------------+------------+-----------+--------+-------------+
|  10001 | 1953-09-02 | Georgi     | Facello   | M      |  1986-06-26 |
+--------+------------+------------+-----------+--------+-------------+
|  10002 | 1964-06-02 | Bezalel    | Simmel    | F      |  1985-11-21 |
+--------+------------+------------+-----------+--------+-------------+
    .
    .

…您打印出其他列…@MitchWheat-我想得到结果集中的列数,然后打印出来。api没有像getNumberOfColumns()这样的方法;这已经解决了。@摩天大楼-请在这里提供您喜欢的解决方案来回答这个问题,让其他人知道……)另请参见如果要获取每行值,则应迭代
rs
变量。如果要获取行大小,请检查
Printing 10 rows from table(s) EMPLOYEES
+--------+------------+------------+-----------+--------+-------------+
| EMP_NO | BIRTH_DATE | FIRST_NAME | LAST_NAME | GENDER |  HIRE_DATE  |
+--------+------------+------------+-----------+--------+-------------+
|  10001 | 1953-09-02 | Georgi     | Facello   | M      |  1986-06-26 |
+--------+------------+------------+-----------+--------+-------------+
|  10002 | 1964-06-02 | Bezalel    | Simmel    | F      |  1985-11-21 |
+--------+------------+------------+-----------+--------+-------------+
    .
    .