データベース・リソース・ファイルの処理クラス

1645 ワード

このクラスの役割は、データベースに接続する際の「ハードコーディング」の問題、すなわち駆動クラス、接続文字列、ユーザー名、パスワードなどの情報をリソースファイルで得ることができ、セキュリティを向上させ、コードのメンテナンスを容易にすることにある.
  
データベースリソースファイルを扱うクラスDBConfig.java
 
import java.util.Properties;
import java.io.*;

public class DBConfig {
	private static Object initLock = new Object();

	private static DBConfig dbconfig = null;

	private Properties props = null;

	public static DBConfig getInstance() {
		if (dbconfig == null) {
			synchronized (initLock) {
				if (dbconfig == null) {
					dbconfig = new DBConfig();
				}
			}
		}
		return dbconfig;
	}

	private synchronized void loadProperties() {
		props = new Properties();
		try {
			System.out.println("Load pro file");
			InputStream in = getClass().getResourceAsStream("/db.properties");
			props.load(in);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public String getProperty(String propName) {
		if (props == null) {
			loadProperties();
		}
		return props.getProperty(propName);
	}
}

 
 
リソースファイルdb.properties
url=jdbc:mysql://localhost:3306/example driver=org.gjt.mm.mysql.Driver username=root password=123654
データベースに接続するコードでは、以下の方法で駆動クラス、url、username、passwordを得ることができます.
 
String driver		=	DBConfig.getInstance().getProperty("driver");
String url			=	DBConfig.getInstance().getProperty("url");
String username	=	DBConfig.getInstance().getProperty("username");
String password	=	DBConfig.getInstance().getProperty("password");

 
 
P.S.
この3つのファイルの場所に注意してください.同じディレクトリの下に置くことをお勧めします.