テーブル名も取得できたので、あとはカラム名、型、サイズだけだな。
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だからかな。とりあえず、目的は達成した気がする。