SQLJetを使う!列名取得編

今回は作成したテーブルから列(カラム)名を取得します。

テーブル内容を表示させる事にも関わってきます。

[java]
public String[] getColumnNames(String tableName) throws SqlJetException{

// 列名格納配列
String[] columnNames = null;

// 読み込みモード
db.beginTransaction(SqlJetTransactionMode.READ_ONLY);

// テーブルを開く
ISqlJetTable table = db.getTable(tableName);

// テーブルを明確化(?)
ISqlJetTableDef tabledef = table.getDefinition();

// 列名を取得
List<ISqlJetColumnDef> columnList = tabledef.getColumns();

// 列名格納配列を初期化
columnNames = new String[columnList.size()];

// 格納
for(int i = 0; i < columnNames.length; i++){
columnNames[i] = columnList.get(i).getName();
}

db.commit();

return columnNames;
}
[/java]

自分でもあまりわかっていないことが多いので、ご存知の方はコメントしていただけるとありがたいです。

列名を呼び出すまでにISqlJetTableからISqlJetTableDefと2段階踏んでいます。これはgetColumns()を呼び出すために遡っていったらこうなりました。

そして列名はList型で返されるので扱いやすいようにString型配列に格納しなおしています。あくまでここは個人的なところなのでそのままでもいいですね。

コメント

タイトルとURLをコピーしました