반응형
JDBC(Java Database Connectivity)는 자바 개발자라면 반드시 알아야 할 중요한 기술 중 하나입니다. 이번 포스트에서는 초보자도 쉽게 따라 할 수 있는 작가 관리 애플리케이션을 만들어 보겠습니다. 이 프로젝트를 통해 데이터베이스 연결부터 CRUD 작업까지 체계적으로 배우고, 깔끔한 코드 구조를 이해하게 될 거예요.
프로젝트 개요
이번 애플리케이션은 아래와 같은 기능을 제공합니다:
- 모든 작가 목록 조회
- 새로운 작가 추가
- 작가 정보 수정
- 작가 삭제
- 특정 ID로 작가 검색
1단계: 데이터베이스 설정
시작하기 전에 Oracle 데이터베이스에 아래의 테이블 구조를 만들어 주세요:
CREATE TABLE author (
author_id NUMBER(10) PRIMARY KEY,
author_name VARCHAR2(100) NOT NULL,
author_desc VARCHAR2(500)
);
CREATE SEQUENCE seq_author_id
START WITH 1
INCREMENT BY 1;
위의 테이블과 시퀀스를 통해 작가 데이터를 저장하고 관리할 수 있습니다.
2단계: 프로젝트 구조 설계
애플리케이션은 아래와 같은 주요 클래스로 구성됩니다:
- AuthorDAO: 데이터베이스 접근을 위한 인터페이스.
- AuthorDAOImplOracle: AuthorDAO를 구현하여 실제 데이터베이스 작업을 수행하는 클래스.
- AuthorVO: 작가 정보를 저장하기 위한 Value Object 클래스.
- DaoApp: 애플리케이션의 메인 클래스.
- DatabaseConfig: 데이터베이스 설정을 저장하는 클래스.
3단계: 주요 코드 설명
AuthorDAO 인터페이스
AuthorDAO는 데이터베이스와의 작업을 정의합니다. 아래는 해당 인터페이스 코드입니다:
public interface AuthorDAO {
List<AuthorVO> getList(); // 전체 작가 목록 가져오기
AuthorVO get(Long id); // 특정 ID의 작가 가져오기
boolean insert(AuthorVO authorVo); // 작가 추가
boolean delete(Long id); // 작가 삭제
boolean update(AuthorVO authorVo); // 작가 정보 수정
}
AuthorVO 클래스
AuthorVO는 작가 데이터를 저장하는 객체입니다. 이 클래스는 데이터베이스 테이블의 필드와 매칭되며, 간단한 생성자와 getter, setter를 포함합니다.
public class AuthorVO {
private Long authorId;
private String authorName;
private String authorDesc;
// 기본 생성자
public AuthorVO() {}
// 모든 필드를 포함한 생성자
public AuthorVO(Long authorId, String authorName, String authorDesc) {
this.authorId = authorId;
this.authorName = authorName;
this.authorDesc = authorDesc;
}
// getter와 setter
public Long getAuthorId() { return authorId; }
public void setAuthorId(Long authorId) { this.authorId = authorId; }
public String getAuthorName() { return authorName; }
public void setAuthorName(String authorName) { this.authorName = authorName; }
public String getAuthorDesc() { return authorDesc; }
public void setAuthorDesc(String authorDesc) { this.authorDesc = authorDesc; }
@Override
public String toString() {
return "AuthorVO [authorId=" + authorId + ", authorName=" + authorName + ", authorDesc=" + authorDesc + "]";
}
}
AuthorDAOImplOracle 클래스
이 클래스는 AuthorDAO를 구현하며, JDBC를 사용하여 데이터베이스 작업을 처리합니다.
public class AuthorDAOImplOracle implements AuthorDAO {
private Connection getConnection() throws SQLException {
Connection conn = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String dburl = "jdbc:oracle:thin:@localhost:1522:xe";
conn = DriverManager.getConnection(dburl, DatabaseConfig.DB_USER, DatabaseConfig.DB_PASS);
} catch (ClassNotFoundException e) {
System.err.println("드라이버를 찾을 수 없습니다.");
e.printStackTrace();
}
return conn;
}
@Override
public List<AuthorVO> getList() {
List<AuthorVO> list = new ArrayList<>();
try (Connection conn = getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT author_id, author_name, author_desc FROM author")) {
while (rs.next()) {
list.add(new AuthorVO(rs.getLong(1), rs.getString(2), rs.getString(3)));
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
// 다른 메서드들 (get, insert, update, delete)도 위와 같은 방식으로 구현
}
4단계: 메인 클래스 - DaoApp
이 클래스는 애플리케이션의 진입점으로, 사용자가 데이터를 입력하고 CRUD 작업을 실행할 수 있습니다.
public class DaoApp {
public static void main(String[] args) {
listAuthors();
}
private static void listAuthors() {
AuthorDAO dao = new AuthorDAOImplOracle();
dao.getList().forEach(System.out::println);
}
}
마무리
이번 포스트에서는 간단한 JDBC 애플리케이션을 통해 오라클 데이터베이스와 상호작용하는 방법을 배웠습니다. 프로젝트를 직접 실행해 보면서 JDBC의 기본 개념을 확실히 익혀보세요!

반응형
'개발 > JAVA' 카테고리의 다른 글
Java로 배우는 간단한 TCP 소켓 프로그래밍 예제 (4) | 2025.01.27 |
---|---|
쉽게 배우는 Java 에코 서버와 클라이언트 만들기! (8) | 2025.01.24 |
Java 입출력과 텍스트 처리: Scanner와 StringTokenizer 활용하기 (18) | 2025.01.22 |
Java 입출력 스트림 이해하기: Buffered 및 CharStream 사용 예제 (11) | 2025.01.21 |
Java 파일 입출력 처리 및 파일 복사 예제 (8) | 2025.01.20 |