Java 프레임워크 만들기 - JSP

자바 데이터베이스 매니저 만들기 2 - Java Database Manager, 이클립스(Eclipse)

carrotweb 2021. 5. 31. 12:09
728x90
반응형

4. "TestServletContextListener.java"의 "contextInitialized"에 읽어들인 데이터베이스 프로퍼티 파일로 부터 데이터베이스의 ID와 읽어들인 정보로 생성된 데이터베이스 매니저(TestDatabaseManager)를 매핑하하기 위해 데이터베이스매핑맵(databaseMappingMap)을 추가합니다. 향후 "DAO" 클래스 작업 시 의존성 주입(Dependency Injection)에 사용됩니다.

// DBId-Database 맵
Map<String, TestDatabaseManager> databaseMappingMap = new HashMap<String, TestDatabaseManager>();

"getServletContext().getInitParameter"로 데이터베이스 매니저 프로퍼티 파일 경로를 읽어옵니다.

String databaseManagers = sce.getServletContext().getInitParameter("DatabaseManager");
if (databaseManagers != null && !databaseManagers.trim().isEmpty()) {
}

데이터베이스 매니저 프로퍼티 파일 경로는 한개 이상 설정할 수 있습니다.

<context-param>
	<param-name>DatabaseManager</param-name>
	<param-value>
		/com/home/project/test2/config/database-maria.properties
		/com/home/project/test2/config/database-oracle.properties
	</param-value>
</context-param>

구분자로 "\n"(라인피드), ","(콤마), ";"(세미콜론), " "(공백)으로 구분되어 설정할 수 있습니다.

String[] databaseManagerPaths = databaseManagers.trim().split("\n|,|;|\\s+");
for (String databaseManagerPath : databaseManagerPaths) {
	databaseManagerPath = databaseManagerPath.trim();
	if (!databaseManagerPath.isEmpty()) {
	}
}

데이터베이스 매니저 프로퍼티 경로 데이터베이스 매니저 클래스를 생성합니다.

TestDatabaseManager testDatabaseManager = new TestDatabaseManager(databaseManagerPath);
if (testDatabaseManager.isInitDriver()) {
	databaseMappingMap.put(testDatabaseManager.getId(), testDatabaseManager);
}

데이터베이스매핑맵(databaseMappingMap)에서 ID가 "databaseMaria"인 데이터베이스 매니저 클래스를 가져와 연결 테스트 하겠습니다.

TestDatabaseManager testDatabaseManager = databaseMappingMap.get("databaseMaria");
if (testDatabaseManager != null) {
	Connection connection = testDatabaseManager.getConnection();
	testDatabaseManager.closeConnection(connection);
}

전체 소스입니다.

String databaseManagers = sce.getServletContext().getInitParameter("DatabaseManager");
if (databaseManagers != null && !databaseManagers.trim().isEmpty()) {
	String[] databaseManagerPaths = databaseManagers.trim().split("\n|,|;|\\s+");
	for (String databaseManagerPath : databaseManagerPaths) {
		databaseManagerPath = databaseManagerPath.trim();
		if (!databaseManagerPath.isEmpty()) {
			TestDatabaseManager testDatabaseManager = new TestDatabaseManager(databaseManagerPath);
			if (testDatabaseManager.isInitDriver()) {
				databaseMappingMap.put(testDatabaseManager.getId(), testDatabaseManager);
			}
		}
	}
}

TestDatabaseManager testDatabaseManager = databaseMappingMap.get("databaseMaria");
if (testDatabaseManager != null) {
	Connection connection = testDatabaseManager.getConnection();
	testDatabaseManager.closeConnection(connection);
}

 

"Servers"탭에서 "tomcat8"를 선택하고 "start"버튼(start the server)을 클릭합니다.

"Console"탭을 클릭하면 데이터베이스 프로퍼티로 부터 데이터베이스 정보를 읽고 마리아디비 드라이버(class org.mariadb.jdbc.Driver)를 로드하고 마리아디비에 접속하고 바로 접속을 종료한 것을 확인할 수 있습니다.

[Console]

데이터베이스 프로퍼티를 읽음
데이터베이스 드라이버(class org.mariadb.jdbc.Driver)가 로딩됨
데이터베이스에 연결됨
데이터베이스에서 연결을 종료함
728x90
반응형