SQLJetを使う!DBファイル作成編

今回はDBファイルを作ります。まず入れ物を作らないことには始まらないからね!

コレは公式サイトTutorialCreate New Databeseというタイトルで載っているので参考にします。

import java.io.File;

import org.tmatesoft.sqljet.core.SqlJetException;
import org.tmatesoft.sqljet.core.SqlJetTransactionMode;
import org.tmatesoft.sqljet.core.table.SqlJetDb;

public class DBCreate {
	public static void main(String[] args) {

		// ファイル名
		String DB_name = "C:\\sample.sqlite";

		// ファイル生成
		File dbFile = new File(DB_name);
		dbFile.delete();

		try{
			// DBオブジェクト生成
			SqlJetDb db = SqlJetDb.open(dbFile, true);
	        // Autovacuum有効
	        db.getOptions().setAutovacuum(true);
	        // 書き込みモード
	        db.beginTransaction(SqlJetTransactionMode.WRITE);

	        try{
	        	db.getOptions().setUserVersion(1);
	        }finally{
	        	db.commit();
	        }
	        db.close();
		}catch(SqlJetException e){
			e.printStackTrace();
		}
	}
}

11行目-パスとファイル名を指定しています。拡張子に指定はないらしく「sample.db」「sample.sqlite」など何でも大丈夫なようです。勿論パスも好きに指定してOK。パス名を省略すると実行ファイルと同じ場所にDBファイルを生成します。

14,15行目-実際にファイルを生成しています。Fileインスタンスを生成したあと削除しているのはファイルの重複を避けるためだと思われます。公式サイトを見ても「新しい最小単位のデータベースを作成します」としか書かれていないので、儀式として行っています。

実際に作るときにはすでにファイルが存在する場合は確認ダイアログを表示して削除やリネームなどの動作をします。

19行目-DBオブジェクトを生成。これからはこのオブジェクトにアクセスしてテーブル生成からレコードの追加削除などを行ないます。

21行目-Autovacuumオプションを有効にしています。AutovacuumはDBの掃除機能みたいですね。

23行目-トランザクションを書き込みモードにしていますが、今回は以降処理を書いていないので意味はないですね。

26行目-UserVersionですが、意味が分かりませんでした。ドキュメントを見るとUserCookieを設定しているようですが、分かる方はコメントで補足をお願いします。今は儀式として書いておきます。

残りはcomitで処理を確定してcloseで閉じ、エラー表示ですね。

以上がDBファイルの生成です。AccessとSQL文を習ったことがある程度ですので、残りの知識はWebからとなっております。間違いがあれば指摘してください。正しい情報をお伝えすることが目的ですし、私の勉強にもなります。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク