いくらお手軽とはいえ、なぜいきなりSQLite3で遊んでいるかというと・・・
- 最近、JDBCでテーブルアクセスするプログラムを書いた
- Javadocをぼけぇと見ているとDatabaseMetaDataというのを発見。何が出来るのかとぐぐったらテーブル名とかテーブルカラム名とかを取得できることを今更ながらに知った。
- いろんなスキーマに定義しているテーブル情報を整理したくてツールを作ることを思いつく
ということで、ちゃっちゃと遊べるSQLite3に登場願ったわけです。
で、本論。テーブル名の取得。↓の記事で作ったテーブルPEOPLEが出来ているかどうか確認する。
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); } catch (SQLException e) { e.printStackTrace(); } finally { conn.close(); } } public static void getTableInfo(Connection conn) throws SQLException { ResultSet rs = null; try { DatabaseMetaData dmd = conn.getMetaData(); rs = dmd.getTables(null, null, "%", new String[]{"TABLE"}); while (rs.next()) { String name = rs.getString("TABLE_NAME"); System.out.println("table name = " + name); } } catch (SQLException e) { e.printStackTrace(); } finally { rs.close(); } } }
で、実行してみる。
table name = PEOPLE
おぉぅ!