|
| 1 | +package EJB; |
| 2 | + |
| 3 | +import Objects.loanModel; |
| 4 | +import jakarta.ejb.EJB; |
| 5 | +import jakarta.ejb.Stateless; |
| 6 | + |
| 7 | +import java.util.Calendar; |
| 8 | +import java.util.Date; |
| 9 | +import java.util.ArrayList; |
| 10 | +import java.sql.*; |
| 11 | + |
| 12 | +@Stateless(name = "LoanOracleEJB") |
| 13 | +public class LoanOracleBean { |
| 14 | + @EJB |
| 15 | + OracleClientProviderBean oracleClientProviderBean; |
| 16 | + |
| 17 | + public void createLoan(loanModel loan) { |
| 18 | + Date currentDate = new Date(); |
| 19 | + Calendar calendar = Calendar.getInstance(); |
| 20 | + calendar.setTime(currentDate); |
| 21 | + |
| 22 | + calendar.add(Calendar.DAY_OF_MONTH, 14); |
| 23 | + |
| 24 | + Date dateAfterTwoWeeks = calendar.getTime(); |
| 25 | + String insertLoan = "INSERT INTO loans" |
| 26 | + + "(book_id, user_id, return_by, returned)" + "VALUES (" |
| 27 | + + "'" + loan.getBookId() + "'," |
| 28 | + + "'" + loan.getUserId() + "'," |
| 29 | + + "'" + dateAfterTwoWeeks + "'," |
| 30 | + + "0,"; |
| 31 | + |
| 32 | + Statement stmt = null; |
| 33 | + try { |
| 34 | + Connection con = oracleClientProviderBean.getOracleClient(); |
| 35 | + stmt = con.createStatement(); |
| 36 | + |
| 37 | + System.out.println(insertLoan); |
| 38 | + |
| 39 | + stmt.executeUpdate(insertLoan); |
| 40 | + |
| 41 | + stmt.close(); |
| 42 | + } catch(SQLException e) { |
| 43 | + e.printStackTrace(); |
| 44 | + } |
| 45 | + } |
| 46 | + |
| 47 | + public ArrayList<loanModel> getLoans() { |
| 48 | + String query = "SELECT l.LOAN_ID LOAN_ID," + |
| 49 | + "l.BOOK_ID BOOK_ID," + |
| 50 | + "l.USER_ID USER_ID," + |
| 51 | + "l.RETURN_BY RETURN_BY," + |
| 52 | + "l.RETURNED_ON RETURNED_ON," + |
| 53 | + "l.RETURNED RETURNED," + |
| 54 | + "u.FIRST_NAME FIRST_NAME," + |
| 55 | + "u.LAST_NAME LAST_NAME," + |
| 56 | + "u.EMAIL EMAIL," + |
| 57 | + "b.TITLE TITLE," + |
| 58 | + "b.ISBN ISBN," + |
| 59 | + "b.PAGES PAGES," + |
| 60 | + "a.FIRST_NAME AUTHOR_FIRST_NAME," + |
| 61 | + "a.LAST_NAME AUTHOR_LAST_NAME FROM loans l " + |
| 62 | + "INNER JOIN library_users u ON l.user_id = u.user_id " + |
| 63 | + "INNER JOIN books b ON b.book_id = l.book_id " + |
| 64 | + "INNER JOIN authors a ON b.author_id = a.author_id"; |
| 65 | + ArrayList loans_list = new ArrayList(); |
| 66 | + Statement stmt = null; |
| 67 | + |
| 68 | + try { |
| 69 | + Connection con = oracleClientProviderBean.getOracleClient(); |
| 70 | + stmt = con.createStatement(); |
| 71 | + ResultSet rs = stmt.executeQuery(query); |
| 72 | + |
| 73 | + while (rs.next()) { |
| 74 | + loanModel loan = new loanModel(); |
| 75 | + loan.setLoanId(rs.getLong("LOAN_ID")); |
| 76 | + loan.setBookId(rs.getLong("BOOK_ID")); |
| 77 | + loan.setUserId(rs.getLong("USER_ID")); |
| 78 | + loan.setReturnBy(rs.getDate("RETURN_BY")); |
| 79 | + loan.setReturnedOn(rs.getDate("RETURNED_ON")); |
| 80 | + loan.setReturned(rs.getBoolean("RETURNED")); |
| 81 | + loan.setUserFirstName(rs.getString("FIRST_NAME")); |
| 82 | + loan.setUserLastName(rs.getString("LAST_NAME")); |
| 83 | + loan.setUserEmail(rs.getString("EMAIL")); |
| 84 | + loan.setBookTitle(rs.getString("TITLE")); |
| 85 | + loan.setBookIsbn(rs.getLong("ISBN")); |
| 86 | + loan.setAuthorFirstName(rs.getString("AUTHOR_FIRST_NAME")); |
| 87 | + loan.setAuthorLastName(rs.getString("AUTHOR_LAST_NAME")); |
| 88 | + loans_list.add(loan); |
| 89 | + } |
| 90 | + |
| 91 | + stmt.close(); |
| 92 | + return loans_list; |
| 93 | + } catch(SQLException e) { |
| 94 | + e.printStackTrace(); |
| 95 | + } |
| 96 | + |
| 97 | + return null; |
| 98 | + } |
| 99 | +} |
0 commit comments