Skip to content

Commit 6265afb

Browse files
committed
(관리자) 대여된책 있으면 삭제 불가능, 삭제후 목록 최신화
1 parent 6be3cf4 commit 6265afb

2 files changed

Lines changed: 34 additions & 15 deletions

File tree

src/view/EditableBookInfo.java

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public void mouseClicked(MouseEvent e) {
9696
} else if (false) // 대출 실패 했을 때(대출 가능 도서수 초과)
9797
JOptionPane.showMessageDialog(null, "대출 가능한 도서수를 초과하였습니다.\n다른 도서를 반납 후 다시 시도해 주세요.", "대출실패",
9898
JOptionPane.WARNING_MESSAGE);
99-
else // 남은 경우(대출 실패 했을 ‹š(연체된 책 존재))
99+
else // 남은 경우(대출 실패 했을 ‹š(연체된 책 존재))m m m
100100
JOptionPane.showMessageDialog(null, "연체된 책이 있습니다.\n나중에 다시 시도해 주세요.", "대출실패",
101101
JOptionPane.WARNING_MESSAGE);
102102
} else if (bookBorrowButton.getText().equals("반납하기")) // 반납하기 버튼 상태일 때
@@ -130,23 +130,33 @@ public void mouseClicked(MouseEvent e) {
130130
String sql = "UPDATE BOOK\r\n"
131131
+ "SET BOOK_PRE = FALSE\r\n"
132132
+ "WHERE BOOK_ISBN = ?;";
133-
134-
try { // DB 접근
135-
PreparedStatement ps = dbConn.conn.prepareStatement(sql);
136-
137-
ps.setString(1, book_ISBN); //도서 PK
133+
134+
try {
135+
ResultSet rs2 = dbConn.executeQuery("SELECT BOOK_ISBN FROM RENT WHERE BOOK_ISBN = '"
136+
+ book_ISBN + "' AND RENT_RETURN_YN IS NULL;");
138137

139-
int count = ps.executeUpdate();
140-
if (count == 0) {
141-
JOptionPane.showMessageDialog(null, "도서 삭제에 실패하였습니다.", "도서 삭제 실패",
138+
if (rs2.next()) {
139+
System.out.println(rs2.getString("BOOK_ISBN"));
140+
System.out.println("안녕");
141+
JOptionPane.showMessageDialog(null, "대여중인 도서입니다.", "도서 삭제 실패",
142142
JOptionPane.ERROR_MESSAGE);
143143
} else {
144-
JOptionPane.showMessageDialog(null, "도서 삭제에 성공하였습니다.", "도서 삭제 성공",
145-
JOptionPane.NO_OPTION);
144+
PreparedStatement ps = dbConn.conn.prepareStatement(sql);
145+
146+
ps.setString(1, book_ISBN); //도서 PK
147+
148+
int count = ps.executeUpdate();
149+
if (count == 0) {
150+
JOptionPane.showMessageDialog(null, "도서 삭제에 실패하였습니다.", "도서 삭제 실패",
151+
JOptionPane.ERROR_MESSAGE);
152+
} else {
153+
JOptionPane.showMessageDialog(null, "도서 삭제에 성공하였습니다.", "도서 삭제 성공",
154+
JOptionPane.NO_OPTION);
155+
}
146156
}
147157
} catch (SQLException e1) {
148158
e1.printStackTrace(); // 에러 추적
149-
System.out.println("도서삭제 에서 SQL 실행 에러");
159+
System.out.println("회원탈퇴 과정에서 SQL 실행 에러");
150160
}
151161
}
152162
});
@@ -319,7 +329,8 @@ public void mouseClicked(MouseEvent e) {
319329
bookDescriptionLabel.setEnabled(false); // 도서 설명
320330
}
321331
} catch (SQLException e2) {
322-
System.out.println("SQL 실행 에러");
332+
e2.printStackTrace();
333+
System.out.println("EditbalBookInfo SQL 실행 에러");
323334
}
324335

325336
//책 평점 매기기

src/view/SearchBook.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,7 @@ public void mouseClicked(MouseEvent e) {
264264
book_ISBN = rs.getString("BOOK_ISBN"); // ISBN 저장
265265
}
266266
} catch (SQLException e2) {
267+
e2.printStackTrace();
267268
System.out.println("SQL 실행 에러");
268269
}
269270
if (manager) {
@@ -274,9 +275,11 @@ public void mouseClicked(MouseEvent e) {
274275
public void windowClosing(WindowEvent e) {
275276
try { // DB 접근
276277
ResultSet rs = dbConn.executeQuery(
277-
"SELECT BOOK_TITLE, BOOK_AUTHOR, BOOK_PUB, BOOK_CATEGORY, BOOK_ISBN FROM BOOK WHERE BOOK_PRE = TRUE;");
278+
"SELECT BOOK_TITLE, BOOK_AUTHOR, BOOK_PUB, BOOK_CATEGORY, BOOK_ISBN, BOOK_GRADE, BOOK_RENT_COUNT, BOOK_APPEND_DATE FROM BOOK WHERE BOOK_PRE = TRUE;");
278279
set_table(rs);
280+
setTrs();
279281
} catch (SQLException e1) {
282+
e1.printStackTrace();
280283
System.out.println("도서 검색창 테이블 구성중 SQL 실행 에러");
281284
}
282285
e.getWindow().dispose();
@@ -294,9 +297,11 @@ public void windowClosing(WindowEvent e) {
294297
public void windowClosing(WindowEvent e) {
295298
try { // DB 접근
296299
ResultSet rs = dbConn.executeQuery(
297-
"SELECT BOOK_TITLE, BOOK_AUTHOR, BOOK_PUB, BOOK_CATEGORY, BOOK_ISBN FROM BOOK WHERE BOOK_PRE = TRUE;");
300+
"SELECT BOOK_TITLE, BOOK_AUTHOR, BOOK_PUB, BOOK_CATEGORY, BOOK_ISBN, BOOK_GRADE, BOOK_RENT_COUNT, BOOK_APPEND_DATE FROM BOOK WHERE BOOK_PRE = TRUE;");
298301
set_table(rs);
302+
setTrs();
299303
} catch (SQLException e1) {
304+
e1.printStackTrace();
300305
System.out.println("도서 검색창 테이블 구성중 SQL 실행 에러");
301306
}
302307
e.getWindow().dispose();
@@ -338,6 +343,7 @@ public void windowClosing(WindowEvent e) {
338343
set_table(rs);
339344
setTrs();
340345
} catch (SQLException e) {
346+
e.printStackTrace();
341347
System.out.println("SQL 실행 에러");
342348
}
343349

@@ -676,6 +682,7 @@ public void search_event() {
676682
else // 없으면
677683
System.out.println("검색결과가 없습니다.");
678684
} catch (SQLException e2) {
685+
e2.printStackTrace();
679686
System.out.println("SQL 실행 에러");
680687
}
681688
}
@@ -743,6 +750,7 @@ public void set_table(ResultSet rs) throws SQLException {
743750
table.removeColumn(table.getColumnModel().getColumn(5));
744751
table.removeColumn(table.getColumnModel().getColumn(5));
745752
} catch (SQLException e) {
753+
e.printStackTrace();
746754
System.out.println("SQL 실행 에러");
747755
}
748756
}

0 commit comments

Comments
 (0)