SQLJetを使う! 列名取得編

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

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

	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;
	}

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

続きを読む

SQLJetを使う! テーブル一覧編

今回はデータベースファイルに入っているテーブル名を一覧表示させます。

コードは以下の通り

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

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

		try{
			// DBオブジェクト生成
			SqlJetDb db = SqlJetDb.open(dbFile, true);

	        // 書き込みモード
	        db.beginTransaction(SqlJetTransactionMode.READ_ONLY);
	        try{
	        	// スキーマ取得
	        	ISqlJetSchema schema = db.getSchema();

	        	// テーブル一覧取得
	        	Set<String> table_list = schema.getTableNames();

	        	// 一覧表示
	        	for(String tableName : table_list){
	        		System.out.println(tableName);
	        	}

	        }finally{
	        	db.commit();
	        }

		}catch(SqlJetException e){
			e.printStackTrace();
		}

データベースからスキーマを取得して、スキーマからテーブル一覧を取得します。

その際Setで一覧が帰ってくるので拡張for文で簡潔に表示させてみました。

載せるコードを短くしてみましたがどうでしょう?メソッドとしてそのままコピーできるような形にした方がいいですかね?

いや、そもそも需要自体あるかどうか厳しいところだな…。

Javaでファイル名と拡張子を分ける

PictSplitの副産物でファイル名と拡張子を分けるコードです。

特殊技術を使っているわけではないので自分の覚書としても書いておきます。

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

		// 分割するファイル名
		String filename = "sample.txt";
		// ファイル名格納変数
		String name = "";
		// 拡張子格納変数
		String ext;

		// ファイル名分割
		String[] filename_ar = filename.split("\\.");

		// ファイル名格納
		int i;
		for(i = 0; i < filename_ar.length - 1; i++){
			name += filename_ar[i];
		}
		// 拡張子格納
		ext = filename_ar[i];

		// 出力
		System.out.println("ファイル名:" + name);
		System.out.println("拡張子:" + ext);
	}
}

出力は「ファイル名:sample 拡張子:txt」となります。以下解説。

続きを読む

PictSplit 2.4 公開!

今回は更新推奨

PictSplit2.4(zipファイル)

更新内容は

  1. 画像の名前に「.」が含まれていた際、メタファイルが移動されない不具合を修正

単純に「.」で名前と拡張子を分ける処理にしていたのでこの不具合が発生しました。

PictSplit2.3 公開!

今回は内部処理の変更です。特に必要のない方は更新しなくていいかも。

PictSplit2.3

更新はjarファイルだけを上書きしてください。

更新内容は

  1. 登録したタグすべてにコピーされる
  2. メタファイルが存在する場合一緒にコピーされる

1ですが、以前実装を考えていて結局辞めた経緯があり、今回コメントで要望があったので実装しました。

続きを読む

SQLJetを使う!データ追加編

テーブルを作成できたら次はデータを追加していきます。

テーブルにデータを追加するのは簡単です。

続きを読む

SQLJetを使う!テーブル作成編

前回データベースファイルを作成しましたので、今回は情報を入れる元となるテーブルを作成します。

テーブルを作るためにはまず何を格納するのかを決めますが、今回は以下のようにします。

列名 備考
id 主キー,空なし
name 空なし
age 空あり

名簿のようなテーブルとして空ありなのは問題ですが、今回はいろいろな書き方を示すということで深くは考えないように。

あと、テーブル名はmemberにしてnameのインデックスも作っておきます。

コードは以下のようになります

続きを読む

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

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

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

続きを読む

SQLJetを使う!準備編

SQLJetを使おうとこちらへ訪れた方はすでにSQLiteについてご存知だと思うのでSQLiteの説明は省きます。

SQLiteについて知りたい方はGoogle検索-「SQLite」DBOnline様の「SQLite入門」を御覧ください

SQLiteは軽量なSQLデータベースですが、SQLJetの場合SQL文は使えません。すべて用意された機能を使ってデータベースのファイル作成から出力まで行ないます。

それではSQLjetのダウンロードから始めます

続きを読む

JavaでSQLiteを使おう!SQLJet編

現在卒業制作でJavaでSQLiteを使ったものを制作しています。

SQLiteを扱うのにSQLJetを使っています。

まぁ日本語の解説が少ないこと。ドキュメント見ながら試行錯誤しているので予定の何割が実装できるのかわかりませんが続けております。

仕事で使っている方はドキュメント観てサクサクと作っているのでしょうか。

そこで、自分の調べたことを日本語で公開してくことによって誰かの助けになればと思いデータベースファイルの作成からテーブル内容の表示などを解説していきたいと思います。

ひとつの機能をひとつの記事で書いていく予定なので、最終的には(最後まで続けば…)ページに項目ごとに分類して目次のようなものを作って分かりやすくしたいですね。

次からSQLJetのダウンロードやクラスパスの通し方を解説したいと思います。

私の制作環境はWindows XPでEclipse3.5です。

次のページ →