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
40 changes: 39 additions & 1 deletion src/library/assistant/database/DatabaseHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ private static void inflateDB() {
System.out.println("Already loaded tables " + loadedTables);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(DatabaseHandler.class.getClass().getResourceAsStream("/resources/database/tables.xml"));
Document doc = dBuilder.parse(DatabaseHandler.class.getResourceAsStream("/resources/database/tables.xml"));
NodeList nList = doc.getElementsByTagName("table-entry");
for (int i = 0; i < nList.getLength(); i++) {
Node nNode = nList.item(i);
Expand Down Expand Up @@ -138,6 +138,44 @@ public boolean execAction(String qu) {
}
}

public ResultSet execQuery(String query, Object... params) {
ResultSet result;
PreparedStatement pstmt = null;
try {
pstmt = conn.prepareStatement(query);
for (int i = 0; i < params.length; i++) {
pstmt.setObject(i + 1, params[i]);
}
pstmt.closeOnCompletion();
result = pstmt.executeQuery();
} catch (SQLException ex) {
System.out.println("Exception at execQuery:dataHandler" + ex.getLocalizedMessage());
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
// Ignore or log
}
}
return null;
}
return result;
}

public boolean execAction(String query, Object... params) {
try (PreparedStatement pstmt = conn.prepareStatement(query)) {
for (int i = 0; i < params.length; i++) {
pstmt.setObject(i + 1, params[i]);
}
pstmt.execute();
return true;
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Error:" + ex.getMessage(), "Error Occured", JOptionPane.ERROR_MESSAGE);
System.out.println("Exception at execQuery:dataHandler" + ex.getLocalizedMessage());
return false;
}
}

public boolean deleteBook(Book book) {
try {
String deleteStatement = "DELETE FROM BOOK WHERE ID = ?";
Expand Down
26 changes: 12 additions & 14 deletions src/library/assistant/ui/main/MainController.java
Original file line number Diff line number Diff line change
Expand Up @@ -187,8 +187,8 @@ private void loadMemberInfo(ActionEvent event) {
enableDisableGraph(false);

String id = memberIDInput.getText();
String qu = "SELECT * FROM MEMBER WHERE id = '" + id + "'";
ResultSet rs = databaseHandler.execQuery(qu);
String qu = "SELECT * FROM MEMBER WHERE id = ?";
ResultSet rs = databaseHandler.execQuery(qu, id);
Boolean flag = false;
try {
while (rs.next()) {
Expand Down Expand Up @@ -236,13 +236,11 @@ private void loadIssueOperation(ActionEvent event) {

JFXButton yesButton = new JFXButton("YES");
yesButton.addEventHandler(MouseEvent.MOUSE_CLICKED, (MouseEvent event1) -> {
String str = "INSERT INTO ISSUE(memberID,bookID) VALUES ("
+ "'" + memberID + "',"
+ "'" + bookID + "')";
String str2 = "UPDATE BOOK SET isAvail = false WHERE id = '" + bookID + "'";
String str = "INSERT INTO ISSUE(memberID,bookID) VALUES (?, ?)";
String str2 = "UPDATE BOOK SET isAvail = false WHERE id = ?";
System.out.println(str + " and " + str2);

if (databaseHandler.execAction(str) && databaseHandler.execAction(str2)) {
if (databaseHandler.execAction(str, memberID, bookID) && databaseHandler.execAction(str2, bookID)) {
JFXButton button = new JFXButton("Done!");
button.setOnAction((actionEvent) -> {
bookIDInput.requestFocus();
Expand Down Expand Up @@ -281,8 +279,8 @@ private void loadBookInfo2(ActionEvent event) {
+ "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);
+ "WHERE ISSUE.bookID=?";
ResultSet rs = databaseHandler.execQuery(myQuery, id);
if (rs.next()) {
memberNameHolder.setText(rs.getString("name"));
memberContactHolder.setText(rs.getString("mobile"));
Expand Down Expand Up @@ -330,10 +328,10 @@ private void loadSubmissionOp(ActionEvent event) {
JFXButton yesButton = new JFXButton("YES, Please");
yesButton.addEventHandler(MouseEvent.MOUSE_CLICKED, (MouseEvent ev) -> {
String id = bookID.getText();
String ac1 = "DELETE FROM ISSUE WHERE BOOKID = '" + id + "'";
String ac2 = "UPDATE BOOK SET ISAVAIL = TRUE WHERE ID = '" + id + "'";
String ac1 = "DELETE FROM ISSUE WHERE BOOKID = ?";
String ac2 = "UPDATE BOOK SET ISAVAIL = TRUE WHERE ID = ?";

if (databaseHandler.execAction(ac1) && databaseHandler.execAction(ac2)) {
if (databaseHandler.execAction(ac1, id) && databaseHandler.execAction(ac2, id)) {
JFXButton btn = new JFXButton("Done!");
btn.setOnAction((actionEvent) -> {
bookID.requestFocus();
Expand Down Expand Up @@ -364,9 +362,9 @@ private void loadRenewOp(ActionEvent event) {
}
JFXButton yesButton = new JFXButton("YES, Please");
yesButton.addEventHandler(MouseEvent.MOUSE_CLICKED, (MouseEvent event1) -> {
String ac = "UPDATE ISSUE SET issueTime = CURRENT_TIMESTAMP, renew_count = renew_count+1 WHERE BOOKID = '" + bookID.getText() + "'";
String ac = "UPDATE ISSUE SET issueTime = CURRENT_TIMESTAMP, renew_count = renew_count+1 WHERE BOOKID = ?";
System.out.println(ac);
if (databaseHandler.execAction(ac)) {
if (databaseHandler.execAction(ac, bookID.getText())) {
JFXButton btn = new JFXButton("Alright!");
AlertMaker.showMaterialDialog(rootPane, rootAnchorPane, Arrays.asList(btn), "Book Has Been Renewed", null);
disableEnableControls(false);
Expand Down