
Java Project - MySQL 연결: Java DataBase Connectivity
수업에서 MySQL을 활용한 데이터베이스 관리 방법을 배웠다. Java 프로젝트와 MySQL로 구축한 데이터베이스를 연결해 보자!
프로젝트에서 MySQL을 연결하려면, 초기 설정이 필요하다. 한번 살펴보자!
다운로드받기
MySQL :: Download Connector/J
MySQL Connector/J is the official JDBC driver for MySQL. MySQL Connector/J 8.0 and higher is compatible with all MySQL versions starting with MySQL 5.7. Additionally, MySQL Connector/J 8.0 and higher supports the new X DevAPI for development with MySQL Ser
dev.mysql.com
MySQL 사이트에 들어가면 관련 .jar 파일을 받을 수 있다.

여기서 두 번째 파일을 받아 압축을 푼 후, .jar 파일을 프로젝트 내 라이브러리 폴더 lib에 담으면 된다.
java src 폴더 내에 있는 DBUtil을 완성해 주면 된다.
DBUtil 클래스 완성하기
정확히 말하면, DBUtil 클래스는 인스턴스를 제공하고, DB 연결이 완료되었을 때 없애는 작업만 한다.
SQL문을 작성하고, 결과를 다루는 부분은 Dao 파트에서 한다. 오늘은 개발 환경 구축 시 DB 연결과 연결 해제만 정리해 보았다.
연결할 데이터베이스의 url과 이름을 설정한다. 편리한 유지보수를 위해 final 변수를 활용하여 선언하고, 적용하자!
DB 연결 및 DBUtil 싱글톤 구현
DriverManager는 기본적으로 제공되는 클래스이고, 여기서 Connection을 가져온 다음, Connection으로 PreparedStatement를 통해 ResultSet을 가져온다. 따라서 생성 순서도 DriverManager -> Connection -> PreparedStatement -> ResultSet 순이다.
// DB와 연결하기위해 필요한 DB의 URL
private final String url = "jdbc:mysql://localhost:3306/dburl입력";
// DB의 USER 이름
private final String username = "id";
// 위 USER의 PASSWORD
private final String password = "password";
// Mysql 드라이버 클래스 이름
private final String drivername = "com.mysql.cj.jdbc.Driver";
private static DBUtil instance = new DBUtil();
private DBUtil() {
try {
Class.forName(drivername);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static DBUtil getInstance() {
return instance;
}
public Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, username, password);
}
제거 순서는 반대로 해야 한다. ResultSet -> PreparedStatement -> Connection 순이다.
// 자원 해제
public static void close(Connection conn, PreparedStatement pstmt) {
try {
if (pstmt != null)
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if (conn != null)
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void close(Connection conn, PreparedStatement pstmt, ResultSet rs) {
try {
if (rs != null)
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if (pstmt != null)
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if (conn != null)
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
'Web 개발' 카테고리의 다른 글
JavaScript React에서 Bootstrap 사용하기 (0) | 2023.08.17 |
---|