반응형
이클립스 -> JAVA EE -> Dynamic Project 생성 -> Java Resources -> Src -> DBUtil 클래스 생
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBUtil {
private String url = "jdbc:mysql://localhost:3306/데이터베이스명?serverTimezone=UTC";
private String username = "mysql 설정 유저명";
private String password = "mysql 설정 비밀번호";
private 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);
}
public void close(Connection conn, PreparedStatement pstmt) {
try {
if(pstmt != null)
pstmt.close();
} catch(SQLException e) {
e.printStackTrace();
}
try {
if(conn != null)
conn.close();
} catch(SQLException e) {
e.printStackTrace();
}
}
public void close(Connection conn, PreparedStatement pstmt, ResultSet rs) {
try {
if(rs != null)
rs.close();
} catch(SQLException e) {
e.printStackTrace();
}
try {
if(pstmt != null)
pstmt.close();
} catch(SQLException e) {
e.printStackTrace();
}
try {
if(conn != null)
conn.close();
} catch(SQLException e) {
e.printStackTrace();
}
}
}
DBUtil 클래스는 다른 클래스(Dao클래스 등)에서 getConnection()을 이용해 DB 연결을 할 수 있다.
prepareStatement(sql코드), excuteQuery()를 통해 명령어에 맞는 데이터를 가져온다.
//String sql = "SELECT * FROM movieList;
try {
conn = util.getConnection();
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while (rs.next()) {
//DB데이터 가져오기
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
util.close(conn, pstmt, rs);
}
DBUtil에는 close 메서드도 구현하고 있어 DB와의 연결을 끊을 때 사용한다.
끝 - !
반응형
'BE > MySQL' 카테고리의 다른 글
[MYSQL] 맥북 Opening SQL Editor 창에서 안넘어가는 문제, 다시 설치해보자 (0) | 2023.06.16 |
---|---|
[SQL] 날짜 데이터 추출 /포맷, NULL 값 제외 (0) | 2023.05.18 |
[MySQL] DCL(Data Control Language) 데이터 제어어 명령어 모음 (0) | 2023.03.31 |
[MySQL] DML(Data Manipulation Language) 데이터 조작어 명령어 모음 (0) | 2023.03.31 |
[MySQL] DDL(Data Definination Language) 데이터 정의어 명령어 모음 (0) | 2023.03.31 |