카테고리 없음
BookRepository
별초롱언니
2025. 6. 5. 15:07
package dao;
import java.sql.*;
import java.util.ArrayList;
import dto.Book;
public class BookRepository {
private static BookRepository instance = new BookRepository();
public static BookRepository getInstance() {
return instance;
}
private String jdbcUrl = "jdbc:mysql://localhost:3306/BookmarketDB?useSSL=false&serverTimezone=UTC";
private String jdbcUser = "root";
private String jdbcPassword = "1234";
public ArrayList<Book> getAllBooks() {
ArrayList<Book> listOfBooks = new ArrayList<>();
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPassword);
String sql = "SELECT * FROM book";
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
Book book = new Book(rs.getString("b_id"), rs.getString("b_name"), rs.getInt("b_unitPrice"));
book.setAuthor(rs.getString("b_author"));
book.setDescription(rs.getString("b_description"));
book.setPublisher(rs.getString("b_publisher"));
book.setCategory(rs.getString("b_category"));
book.setUnitsInStock(rs.getLong("b_unitsInStock"));
book.setReleaseDate(rs.getString("b_releaseDate"));
book.setCondition(rs.getString("b_condition"));
book.setFileName(rs.getString("b_fileName"));
listOfBooks.add(book);
}
rs.close();
pstmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
return listOfBooks;
}
public Book getBookById(String bookId) {
Book book = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPassword);
String sql = "SELECT * FROM book WHERE b_id = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, bookId);
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
book = new Book(rs.getString("b_id"), rs.getString("b_name"), rs.getInt("b_unitPrice"));
book.setAuthor(rs.getString("b_author"));
book.setDescription(rs.getString("b_description"));
book.setPublisher(rs.getString("b_publisher"));
book.setCategory(rs.getString("b_category"));
book.setUnitsInStock(rs.getLong("b_unitsInStock"));
book.setReleaseDate(rs.getString("b_releaseDate"));
book.setCondition(rs.getString("b_condition"));
book.setFileName(rs.getString("b_fileName"));
}
rs.close();
pstmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
return book;
}
public void addBook(Book book) {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPassword);
String sql = "INSERT INTO book VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, book.getBookId());
pstmt.setString(2, book.getName());
pstmt.setInt(3, book.getUnitPrice());
pstmt.setString(4, book.getAuthor());
pstmt.setString(5, book.getDescription());
pstmt.setString(6, book.getPublisher());
pstmt.setString(7, book.getCategory());
pstmt.setLong(8, book.getUnitsInStock());
pstmt.setString(9, book.getReleaseDate());
pstmt.setString(10, book.getCondition());
pstmt.setString(11, book.getFileName());
pstmt.executeUpdate();
pstmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
package dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import dto.Book;
// Book 클래스가 돈이면 돈을 주고 받고
public class BookRepository {
// ex) 빵<치즈>
// 변수 : 전역변수, 참조변수 <북> arrayList안에<Book>
private ArrayList<Book> listOfBooks = new ArrayList<Book>();
private static BookRepository instance = new BookRepository();
public static BookRepository getInstance() {
return instance;
}
// 함수 : 생성자(클래스 이름과 같다) : 객체 생성시 전역변수 초기화
public BookRepository() {
Book book1 = new Book("ISBN1234","C# 프로그래밍",27000);
book1.setAuthor("우재님");
book1.setDescription("C#을 처음 접하는 독자를 대상으로 일대일 수업처럼 자세히 설명한 책이다. 꼭 알아야 할 핵심 개념은 기본 예제로 최대한 쉽게 설명했으며, 중요한 내용은 응용 예제, 퀴즈, 셀프 스터디, 예제 모음으로 한번 더 복습할 수 있다.");
book1.setPublisher("한빛아카데미");
book1.setCategory("IT모바일");
book1.setUnitsInStock(1000);
book1.setReleaseDate("2022/10/06");
book1.setFileName("ISBN1234.jpg");
Book book2 = new Book("ISBN1235","자바마스터",30000);
book2.setAuthor("송미영");
book2.setDescription("자바를 처음 배우는 학생을 위해 자바의 기본 개념과 실습 에제를 그림을 이용하여 쉽게 설명합니다. 자바의 이론적 개념→기본 예제→프로젝트 순으로 단계별 학습이 가능하며, 각 챕터의 프로젝트를 실습하면서 온라인 서점을 완성할 수 있도록 구성하였습니다.");
book2.setPublisher("한빛아카데미");
book2.setCategory("IT모바일");
book2.setUnitsInStock(1000);
book2.setReleaseDate("2023/10/06");
book2.setFileName("ISBN1235.jpg");
Book book3 = new Book("ISBN1236","파이썬 프로그래밍",30000);
book3.setAuthor("최성철");
book3.setDescription("파이썬으로 프로그래밍을 시작하는 입문자가 쉽게 이해할 수 있도록 기본 개념을 상세하게 설명하며, 다양한 예제를 제시합니다. 또한 프로그래밍의 기초 원리를 이해하면서 파이썬으로 데이터를 처리하는 기법도 배웁니다.");
book3.setPublisher("한빛아카데미");
book3.setCategory("IT모바일");
book3.setUnitsInStock(1000);
book3.setReleaseDate("2024/10/06");
book3.setFileName("ISBN1236.jpg");
listOfBooks.add(book1);
listOfBooks.add(book2);
listOfBooks.add(book3);
}
// 함수 : 참조변수를 리턴 뱓는게 없음
public ArrayList<Book> getAllBooks() {
return listOfBooks;
}
// 함수 : 참조변수를 리턴 문자열하나줘
public Book getBookById(String bookId) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
Book book = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/BookmarketDB", "root", "1234");
String sql = "SELECT * FROM book WHERE b_id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, bookId);
rs = pstmt.executeQuery();
if (rs.next()) {
book = new Book(rs.getString("b_id"), rs.getString("b_name"), rs.getInt("b_unitPrice"));
book.setAuthor(rs.getString("b_author"));
book.setDescription(rs.getString("b_description"));
book.setPublisher(rs.getString("b_publisher"));
book.setCategory(rs.getString("b_category"));
book.setUnitsInStock(rs.getLong("b_unitsInStock"));
book.setReleaseDate(rs.getString("b_releaseDate"));
book.setCondition(rs.getString("b_condition"));
book.setFileName(rs.getString("b_fileName"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try { if (rs != null) rs.close(); } catch (Exception e) {}
try { if (pstmt != null) pstmt.close(); } catch (Exception e) {}
try { if (conn != null) conn.close(); } catch (Exception e) {}
}
return book;
}
public void addBook(Book book) {
listOfBooks.add(book);
}
}