けんとのブログ

ぼやき&開発メモ

プロパティファイルについて

2009年01月28日 15時37分59秒 | プロパティファイル・エディタ
拡張子は「.properties」
classesフォルダに置く。srcフォルダの方を変更しても、classesファイルの方には反映されないので、
必ずclassesフォルダの方を変更する必要がある。

~DB接続設定をプロパティファイルで書く場合~
//プロパティファイル内容。
mysql.jdbc.driver=org.gjt.mm.mysql.Driver
mysql.jdbc.url=jdbc:mysql:///database名?useUnicode=true&characterEncoding=SJIS
mysql.jdbc.user=root
mysql.jdbc.password=root ←設定していない場合は「mysql.jdbc.password=」となる

//プロパティファイル読み込み。
ResourceBundle rb = ResourceBundle.getBundle("mysqljdbc");

// プロパティファイルから値を取得。
String driver = rb.getString("mysql.jdbc.driver");
String url = rb.getString("mysql.jdbc.url");
String user = rb.getString("mysql.jdbc.user");
String password = rb.getString("mysql.jdbc.password");


プロパティファイルを直接指定する場合にはストリームクラスとPropertiesクラスを用いて取得する。
また、ResourceBundleクラスを用いて取得することもできる。
ResourceBundleクラスの方がロケールの解決等をしてくれ取得が楽なため、
ResourceBundleクラスを用いて取得した方がよい。

プロパティファイルにASCII文字以外の文字列を記述する場合には、Unicodeに変換する必要がある。
Unicodeへの変換は、J2SEに付属しているnative2asciiコマンドを使用する。
変換後のファイルは「プロパティファイル名_言語コード.properties」とする。
「言語コード」はロケールで使用される言語コードであり、日本語であれば「ja」となる。
この命名規則を使用することで、リソースバンドル使用時にロケールの自動解決が行われる。

プロパティファイルを使用することで、プログラムの設定を外部ファイル化することができる。
そうしない場合、設定はプログラム上にハードコーディングされることになり、
設定の変更に再コンパイルが必要となる。プロパティファイルを用いることで、
再コンパイルをせずに設定を変更でき、また設定をひとつにまとめることができるようになる。