Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions src/library/assistant/database/DataHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -146,4 +146,29 @@ public static MailServerInfo loadMailServerInfo() {
}
return null;
}

public static ResultSet getIssueDetails(String bookID) {
return getIssueDetails(bookID, DatabaseHandler.getInstance().getConnection());
}

public static ResultSet getIssueDetails(String bookID, Connection conn) {
ResultSet rs = null;
try {
String query = "SELECT ISSUE.bookID, ISSUE.memberID, ISSUE.issueTime, ISSUE.renew_count,\n"
+ "MEMBER.name, MEMBER.mobile, MEMBER.email,\n"
+ "BOOK.title, BOOK.author, BOOK.publisher\n"
+ "FROM ISSUE\n"
+ "LEFT JOIN MEMBER\n"
+ "ON ISSUE.memberID=MEMBER.ID\n"
+ "LEFT JOIN BOOK\n"
+ "ON ISSUE.bookID=BOOK.ID\n"
+ "WHERE ISSUE.bookID=?";
PreparedStatement stmt = conn.prepareStatement(query);
stmt.setString(1, bookID);
rs = stmt.executeQuery();
} catch (SQLException ex) {
LOGGER.log(Level.ERROR, "{}", ex);
}
return rs;
}
}
11 changes: 1 addition & 10 deletions src/library/assistant/ui/main/MainController.java
Original file line number Diff line number Diff line change
Expand Up @@ -273,16 +273,7 @@ private void loadBookInfo2(ActionEvent event) {

try {
String id = bookID.getText();
String myQuery = "SELECT ISSUE.bookID, ISSUE.memberID, ISSUE.issueTime, ISSUE.renew_count,\n"
+ "MEMBER.name, MEMBER.mobile, MEMBER.email,\n"
+ "BOOK.title, BOOK.author, BOOK.publisher\n"
+ "FROM ISSUE\n"
+ "LEFT JOIN MEMBER\n"
+ "ON ISSUE.memberID=MEMBER.ID\n"
+ "LEFT JOIN BOOK\n"
+ "ON ISSUE.bookID=BOOK.ID\n"
+ "WHERE ISSUE.bookID='" + id + "'";
ResultSet rs = databaseHandler.execQuery(myQuery);
ResultSet rs = DataHelper.getIssueDetails(id);
if (rs.next()) {
memberNameHolder.setText(rs.getString("name"));
memberContactHolder.setText(rs.getString("mobile"));
Expand Down
18 changes: 18 additions & 0 deletions test/library/assistant/database/DataHelperTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,22 @@ public void testInsertNewBookException() throws SQLException {
// Assert
assertFalse(result);
}

@Test
public void testGetIssueDetails() throws SQLException {
// Arrange
Connection mockConn = mock(Connection.class);
PreparedStatement mockStmt = mock(PreparedStatement.class);
String bookID = "B123";

when(mockConn.prepareStatement(anyString())).thenReturn(mockStmt);

// Act
DataHelper.getIssueDetails(bookID, mockConn);

// Assert
verify(mockConn).prepareStatement(contains("WHERE ISSUE.bookID=?"));
verify(mockStmt).setString(1, bookID);
verify(mockStmt).executeQuery();
}
}