Skip to content
This repository was archived by the owner on Jun 9, 2024. It is now read-only.

Commit a3c458f

Browse files
committed
Convert all endpoints to Oracle (untested)
1 parent 09874a0 commit a3c458f

27 files changed

Lines changed: 661 additions & 957 deletions

src/main/java/Book.java

Lines changed: 0 additions & 68 deletions
This file was deleted.

src/main/java/Books.java

Lines changed: 8 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,40 @@
1-
import Objects.Book;
2-
import EJB.BookBean;
1+
import Objects.bookModel;
32
import com.google.gson.Gson;
4-
import com.mongodb.client.FindIterable;
5-
import com.mongodb.client.MongoCursor;
3+
import EJB.BookOracleBean;
64
import jakarta.ejb.EJB;
75
import jakarta.servlet.ServletException;
86
import jakarta.servlet.annotation.WebServlet;
97
import jakarta.servlet.http.HttpServlet;
108
import jakarta.servlet.http.HttpServletRequest;
119
import jakarta.servlet.http.HttpServletResponse;
12-
import org.bson.Document;
13-
import org.bson.types.ObjectId;
1410

1511
import java.io.IOException;
1612
import java.io.PrintWriter;
1713
import java.util.ArrayList;
18-
import java.util.Date;
19-
import java.util.List;
2014

2115

2216
@WebServlet(name = "Books", value = "/books")
2317
public class Books extends HttpServlet {
2418
@EJB
25-
BookBean bookBean;
19+
BookOracleBean bookBean;
2620

2721
@Override
2822
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
2923
response.setContentType("application/json");
3024

3125
PrintWriter out = response.getWriter();
32-
FindIterable<Document> foundBooks = bookBean.getBooks();
33-
MongoCursor<Document> cursor = foundBooks.iterator();
26+
ArrayList<bookModel> result = bookBean.getBooks();
3427

35-
List<Book> books = new ArrayList<Book>();
28+
// Convert the list of documents to a JSON array
29+
Gson gson = new Gson();
30+
String jsonArray = gson.toJson(result);
3631

37-
try {
38-
while (cursor.hasNext()) {
39-
Document doc = cursor.next();
40-
41-
Book book = new Book(
42-
doc.get("_id").toString(),
43-
doc.get("Title").toString(),
44-
doc.get("Author").toString(),
45-
doc.get("ISBN").toString(),
46-
(Integer) doc.get("Pages"),
47-
(Date) doc.get("Added"),
48-
(Boolean) doc.get("OnLoan"));
49-
50-
books.add(book);
51-
}
52-
} finally {
53-
cursor.close();
54-
}
55-
56-
String booksJsonString = new Gson().toJson(books);
57-
out.print(booksJsonString);
32+
out.print(jsonArray);
5833
out.flush();
5934
}
6035

6136
@Override
6237
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
6338

64-
}
65-
66-
public void createCustomer(Document customer) {
67-
68-
6939
}
7040
}

src/main/java/EJB/BookBean.java

Lines changed: 0 additions & 72 deletions
This file was deleted.
Lines changed: 93 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,97 @@
11
package EJB;
22

3-
import Objects.loanModel;
3+
import Objects.bookModel;
44
import jakarta.ejb.EJB;
55
import jakarta.ejb.Stateless;
66

77
import java.sql.*;
88
import java.util.ArrayList;
9-
import java.util.Calendar;
10-
import java.util.Date;
119

1210
@Stateless(name = "BookOracleEJB")
1311
public class BookOracleBean {
1412
@EJB
1513
OracleClientProviderBean oracleClientProviderBean;
1614

17-
public void markAsBorrowed(int bookId) {
18-
Connection con = oracleClientProviderBean.getOracleClient();
19-
String insertLoan = "UPDATE books SET on_loan = 1 WHERE book_id = ?";
20-
21-
try (PreparedStatement preparedStatement = con.prepareStatement(insertLoan)) {
22-
preparedStatement.setInt(1, bookId);
23-
preparedStatement.executeUpdate();
24-
} catch (SQLException e) {
25-
// Handle any potential exceptions here
26-
e.printStackTrace();
15+
public ArrayList<bookModel> getBooks() {
16+
String query = "SELECT b.BOOK_ID BOOK_ID," +
17+
"b.TITLE TITLE," +
18+
"b.ISBN ISBN," +
19+
"b.PAGES PAGES," +
20+
"b.CREATED CREATED," +
21+
"b.ON_LOAN ON_LOAN," +
22+
"a.FIRST_NAME AUTHOR_FIRST_NAME," +
23+
"a.LAST_NAME AUTHOR_LAST_NAME FROM books b " +
24+
"INNER JOIN authors a ON b.author_id = a.author_id";
25+
ArrayList books_list = new ArrayList();
26+
Statement stmt = null;
27+
28+
try {
29+
Connection con = oracleClientProviderBean.getOracleClient();
30+
stmt = con.createStatement();
31+
ResultSet rs = stmt.executeQuery(query);
32+
33+
while (rs.next()) {
34+
bookModel book = new bookModel();
35+
book.setBookId(rs.getLong("BOOK_ID"));
36+
book.setOnLoan(rs.getBoolean("ON_LOAN"));
37+
book.setBookTitle(rs.getString("TITLE"));
38+
book.setBookIsbn(rs.getLong("ISBN"));
39+
book.setBookPages(rs.getInt("PAGES"));
40+
book.setCreated(rs.getDate("CREATED"));
41+
book.setAuthorFirstName(rs.getString("AUTHOR_FIRST_NAME"));
42+
book.setAuthorLastName(rs.getString("AUTHOR_LAST_NAME"));
43+
books_list.add(book);
44+
}
45+
46+
stmt.close();
47+
return books_list;
48+
} catch(SQLException e) {
49+
e.printStackTrace();
50+
}
51+
52+
return null;
2753
}
54+
55+
public ArrayList<bookModel> getAvailableBooks() {
56+
String query = "SELECT b.BOOK_ID BOOK_ID," +
57+
"b.TITLE TITLE," +
58+
"b.ISBN ISBN," +
59+
"b.PAGES PAGES," +
60+
"b.CREATED CREATED," +
61+
"b.ON_LOAN ON_LOAN," +
62+
"a.FIRST_NAME AUTHOR_FIRST_NAME," +
63+
"a.LAST_NAME AUTHOR_LAST_NAME FROM books b " +
64+
"INNER JOIN authors a ON b.author_id = a.author_id " +
65+
"WHERE b.ON_LOAN = 0";
66+
67+
ArrayList books_list = new ArrayList();
68+
Statement stmt = null;
69+
70+
try {
71+
Connection con = oracleClientProviderBean.getOracleClient();
72+
stmt = con.createStatement();
73+
ResultSet rs = stmt.executeQuery(query);
74+
75+
while (rs.next()) {
76+
bookModel book = new bookModel();
77+
book.setBookId(rs.getLong("BOOK_ID"));
78+
book.setOnLoan(rs.getBoolean("ON_LOAN"));
79+
book.setBookTitle(rs.getString("TITLE"));
80+
book.setBookIsbn(rs.getLong("ISBN"));
81+
book.setBookPages(rs.getInt("PAGES"));
82+
book.setCreated(rs.getDate("CREATED"));
83+
book.setAuthorFirstName(rs.getString("AUTHOR_FIRST_NAME"));
84+
book.setAuthorLastName(rs.getString("AUTHOR_LAST_NAME"));
85+
books_list.add(book);
86+
}
87+
88+
stmt.close();
89+
return books_list;
90+
} catch(SQLException e) {
91+
e.printStackTrace();
92+
}
93+
94+
return null;
2895
}
2996

3097
public void markAsReturned(int bookId) {
@@ -39,4 +106,17 @@ public void markAsReturned(int bookId) {
39106
e.printStackTrace();
40107
}
41108
}
109+
110+
public void markAsBorrowed(int bookId) {
111+
Connection con = oracleClientProviderBean.getOracleClient();
112+
String insertLoan = "UPDATE books SET on_loan = 1 WHERE book_id = ?";
113+
114+
try (PreparedStatement preparedStatement = con.prepareStatement(insertLoan)) {
115+
preparedStatement.setInt(1, bookId);
116+
preparedStatement.executeUpdate();
117+
} catch (SQLException e) {
118+
// Handle any potential exceptions here
119+
e.printStackTrace();
120+
}
121+
}
42122
}

0 commit comments

Comments
 (0)