
-파일 위치 : src/main/resources/application.properties
1) resource에 오른쪽 버튼 클릭 new > file 생성하여 아래의 내용을 입력한다.
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/jdbc_ex1
id=jdbc_ex1
password=jdbc_ex1
• 프로젝트의 src/main/resources 디렉토리에 application.properties 파일을 생성합니다.
• 위와 같은 형식으로 데이터베이스 연결 정보를 입력합니다.
• src/main/java/org/scoula/jdbc_ex/common 디렉토리에 JDBCUtil.java 파일을 생성합니다.
• 아래와 같은 형식으로 클래스를 작성합니다.
java
package org.scoula.jdbc_ex1.common;
//패키지 선언.
/* • 개념: 패키지는 클래스를 그룹화하여 관리합니다.
• 사용법: package 키워드를 사용하여 정의합니다.
• 이유: 코드를 모듈화하고 유지보수를 용이하게 하기 위해 사용합니다.
• 유의점: 패키지 구조를 잘 설계하여 코드의 가독성과 관리성을 높입니다. */
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
//import문 : 필요한 클래스들을 가져온다. 즉, 다른 패키지의 클래스를 사용하기 위해 임포트.
/* 1) Connection : 데이터베이스 연결을 나타내는 인터페이스.
2) DriverManager : JDBC 드라이버를 관리하고 데이터베이스 연결을 얻는 클래스.
3) SQLEXception : SQL 작업에서 발생하는 예외를 나타냄.
public class JDBCUtil {
//클래스 선언 : 이 클래스는 데이터베이스 연결과 관련된 유틸리티 메서드를 포함.
static Connection conn = null;
static {
try {
Properties properties = new Properties();
properties.load(JDBCUtil.class.getResourceAsStream("/application.properties"));
String driver = properties.getProperty("drover");
String url = properties.getProperty("url");
String id = properties.getProperty("id");
String password = properties.getProperty("password");
Class.forName(driver);
conn = DriverManager.getConnection(url, id, password);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConnection() {
return conn;
}
public static void close() {
try {
if (conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
Properties 객체를 사용해 application.properties 파일에서 드라이버, url, 아이디, 패스워드를 읽어온다.
Class.forName 메서드를 사용하여 JDBC 드라이버를 로드한다.
DriverManager.getConnection 메서드를 사용해 데이터베이스와의 연결을 설정하고 Connection 객체를 생성한다.
생성된 Connection 객체를 반환한다.
사용이 끝난 Connection 객체를 닫는다.
프로퍼티 파일의 경로가 정확해야 하고, 필요한 모든 프로퍼티가 잘 정의되어 있어야 한다.
또한, 예외 처리를 철저히 하여 실행 중 발생할수 있는 오류를 잘 처리해야 한다.
데이터베이스 연결 정보를 외부 파일(application.properties)에 저장하여 관리의 용이성을 높이고, 코드에서 하드코딩을 피한다.