package db.pokemon; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; /** * @author maxtsu データベースの操作をするクラスです。 * 事前にデータベースファイル(pokemon1.accdb)を * ODBCに登録する必要があります。 */ public class DbPokemon { // ドライバ名 private static final String driverName = "sun.jdbc.odbc.JdbcOdbcDriver"; // DBの種類とDB名 private static final String dbName = "jdbc:odbc:Pokemon1"; // SQL文 private static final String sql = "" + "SELECT P.POKE_NAME AS ポケモン名, T1.TYPE_NAME AS タイプ1, T2.TYPE_NAME AS タイプ2" + " FROM (POKEMON_NUM P INNER JOIN TYPE_TBL T1" + " ON P.TYPE1 = T1.TYPE_ID)" + " INNER JOIN TYPE_TBL T2" + " ON P.TYPE2 = T2.TYPE_ID" + " ORDER BY P.NUM ASC"; public static void main(String args[]) { Connection conn = null; Statement stmt = null; ResultSet rs = null; ResultSetMetaData meta = null; int cols = 0; String str = null; int strlen = 0; try { // ドライバクラスのダウンロード Class.forName(driverName); } catch (ClassNotFoundException e) { e.printStackTrace(); } try { // データベースへ接続 conn = DriverManager.getConnection(dbName); // ステートメントの作成 stmt = conn.createStatement(); // SQLクエリの発行 rs = stmt.executeQuery(sql); // メタデータの取得 meta = rs.getMetaData(); // SQLで取得した列数の表示 cols = meta.getColumnCount(); // 列名の表示 for (int i = 1; i <= cols; i++) { str = meta.getColumnName(i); try { strlen = str.length(); if (str.length() < 5) { for (int j = 0; j < 5-strlen; j++) { str += " "; } } } catch (NullPointerException e) { str = "     "; } System.out.print(str + "\t"); } System.out.println("\n===================="); // 検索された行数分ループ while (rs.next()) { for (int i = 1; i <= cols; i++) { str = rs.getString(i); try { strlen = str.length(); if (str.length() < 5) { for (int j = 0; j < 5-strlen; j++) { str += " "; } } } catch (NullPointerException e) { str = "     "; } System.out.print(str + "\t"); } System.out.println(); } } catch (SQLException e) { e.printStackTrace(); } finally { // 接続などをクローズ if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }