読者です 読者をやめる 読者になる 読者になる

とりあえず目的は達成した

java

テーブル名も取得できたので、あとはカラム名、型、サイズだけだな。

package miyohide;

import java.sql.*;

public class JdbcAccess {
  public static void main(String[] args) throws Exception {
    Class.forName("org.sqlite.JDBC");
    Connection conn = null;
    try {
      conn = DriverManager.getConnection("jdbc:sqlite:test.db");
      //peopleAdd(conn);
      // getTableInfo(conn);
      getTableColumns(conn,"PEOPLE");
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        conn.close();
    }
  }

  public static void getTableColumns(Connection conn, String tableName) throws SQLException {
      ResultSet rs = null;
      try {
          DatabaseMetaData dmd = conn.getMetaData();
          rs = dmd.getColumns(null, null, tableName, "%");
          while (rs.next()) {
              String name = rs.getString("COLUMN_NAME");
              String type = rs.getString("TYPE_NAME");
              int size = rs.getInt("COLUMN_SIZE");
              System.out.println("column name = " + name + ", type = " + type + ", size = " + size);
          }
      } catch (SQLException e) {
              e.printStackTrace();
      } finally {
          rs.close();
      }
  }

}

実行してみる。

column name = name, type = , size = 2000000000
column name = occupation, type = , size = 2000000000

typeは空文字、サイズはやたらと大きいけど、これはSQLite3だからかな。とりあえず、目的は達成した気がする。