IT/JAVA
JDBC + MYSQL 연동
_KH_
2025. 2. 21. 23:22
[JDBC]
※ JDBC란?
자바 프로그램 안에서 SQL을 실행하기 위해 데이터베이스를 연결해주는 응용프로그램 인터페이스
JDBC는 4파트로 구성된다.
1. 드라이버 로드(메모리에 데이터 적재)
Class.forName("com.mysql.cj.jdbc.Driver"); // 클래스 이름으로 읽어오기
코드 중복 감소와 함수화를 위해 상단에 먼저 다 나열해놓고 사용하기.
static final String driverName = "com.mysql.cj.jdbc.Driver";
그리고 try문 안에서
Class.forName(driverName);
로 연결해주면 된다.
■ Class.forName(driverName) 의 뜻
: MySQL JDBC 드라이버를 메모리에 로드하는 역할.
클래스 이름을 문자열로 전달하면 JVM이 해당 클래스를 찾아서 메모리에 로드함.
2. DB 연결
3. 데이터 read, write
4. DB 연결 해제
[JDBC Util]
: 자바에서 MySQL과 연결하는 기능을 제공하는 유틸리티 클래스.
□ DB 연결(connect()), 연결 해제(disconnect()) 기능 2가지 존재
■ "템플릿 코드"
>> Xxxx Util.java 클래스 파일은 대부분 템플릿 코드다.
>> MVC 패턴 중 M이 할 일
■ 사용하는 이유
: [ 함수화, 컴포넌트화, 모듈화, 고도화, 성능최적화 ]
① "패턴화 된 코드(==템플릿)" 코드 줄이기
② 오류의 파급효과 절감
③ 개발 시간 및 비용 절감
④ 유지보수 용이
■ JDBC Util 코드
package model.common;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
// 라이브러리 같은거라 생각
public class JDBCUtil { // util들은 코드를 줄이는 것이 목적. (객체를 만들어서 여러 번 사용하는 것이 목적이 아님)
// 그러므로 static으로 선언한다.
// 연결했을 때 최종적으로 확보되는 것. 드라이브 로드, DB 연결 들어감
// 연결 진행
static final String driverName = "com.mysql.cj.jdbc.Driver";
static final String url = "jdbc:mysql://localhost:3306/test";
static final String userName = "root";
static final String password = "1234";
// 하드코딩 피하기 위해 상수화 하여 위에
public static Connection connect() {
Connection conn = null;
try {
// 1. 드라이버 로드(메모리에 데이터 적재)
Class.forName(driverName);
// 2. DB 연결
conn = DriverManager.getConnection(url,userName,password);
} catch (Exception e) {
e.printStackTrace();
}
return conn; // 최종적으로 확보해야 하는 것
}
// 연결 해제
public static void disconnect(Connection conn, PreparedStatement pstmt) {// 외부에서 받아서 해제
try { // 4. 연결 해제
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
테이블이 많아질수록 모델의 DAO, DTO 파일도 갯수가 많아지기 때문에 패키지를 나누어 관리하는데,
JDBC Util 같은 경우에는 그 어느쪽에도 속하지 않기 때문에 model.common 패키지에 보관한다.