5

Javaコードを使用してデータベースからテーブルをフェッチしたい。私が試したサンプルコードは、2つの列しか取得していません。フェッチしたデータをテーブルとまったく同じように表示したいと思います。それ、どうやったら出来るの ?

このコードでは、2行だけが並んで表示されます-

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

}

-での完全な例

http://msdn.microsoft.com/en-us/library/aa342339.aspx

This is what I tried - 

         int size = 0;
         if(rs != null){

            rs.beforeFirst();  
            rs.last();  
            size = rs.getRow();  

         }

         System.out.println("cols = " + size);

そしてエラーが発生しました-要求された操作は、転送のみの結果セットではサポートされていません。

4

4 に答える 4

17

私はこの回答を同様の質問に投稿しました、これも関連していると思います。要するに、データベース テーブルの行を標準出力に出力するための単純なユーティリティ クラスを作成しました (一部は楽しく、一部は学習のため)。誰かにとって役に立つかもしれません(少なくとも私はそう願っています)。

GitHub のコード リポジトリへのリンクは次のとおりです: https://github.com/htorun/dbtableprinter

そして、基本的な使い方は次のとおりです。

// 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 |
+--------+------------+------------+-----------+--------+-------------+
    .
    .
于 2014-11-04T15:04:21.500 に答える
0

これは、コードが行の値を 2 つしか取得しないためです。つまり、現在の行の値を4 列目(0 ベースのインデックスを使用) としてrs.getString(4)取得することに注意してください。String

すべての列を印刷したい場合は、残りを書く必要がありますrs.getXXXX()。ここで、XXXX列のデータ型は などgetString(), getInteger(), getLong(), etcです。参考として、この Javaドキュメントを参照してください。

于 2013-03-16T02:44:02.670 に答える
0
public static void printSqlTable(String selectQuery) {
      try {
           Statement statement = connection.createStatement();
           resultSet = statement.executeQuery(selectQuery);
           DBTablePrinter.printResultSet(resultSet);
              } catch (SQLException e) {
                  e.printStackTrace();
              } catch (Exception e) {
                  e.printStackTrace();
    }
}
于 2021-11-23T08:55:46.320 に答える