Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
1,36 MB
Nội dung
Fundamentals of Java Enterprise Components Lab11Java Persistence API Mục tiêu - Sử dụng JPA với Java Application - Sử dụng JPA với EJB - JPA Queries Phần I Bài tập step by step Bài 1.1: Mục tiêu: - Xây dựng Java Application - Sử dụng Database service Netbeans cung cấp - Dùng JPA để thao tác với CSDL STEP Tạo CSDL PlayerDB với Java DB tích hợp sẵn Netbeans Mở Service Tab -> Mở rộng Databases -> Chọn Java DB -> Start Server Trên Output Console: kết nối tới Java DB server cổng 1527 Tạo CSDL PlayerDB Java DB -> Create Database IT Research Department @BKAP 2015 Page [1/20] Fundamentals of Java Enterprise Components Password: 123456 Để connect tới CSDL PlayerDB: chọn jdbc:derby://localhost:1527/PlayerDB -> Connect Đi kèm với thựchành file sql playerDB.sql để tạo tables data File -> Open File -> Browser to playerDB.sql IT Research Department @BKAP 2015 Page [2/20] Fundamentals of Java Enterprise Components File playerDB.sql tự động mở với SQL Editor Ở scroll box Connection -> Chọn jdbc:derby://localhost:1527/PlayerDB[root on ROOT] -> Run SQL Câu lệnh SQL thực tạo table: Player Team ROOT -> Tables -> Player -> View Data ROOT -> Tables -> Team -> View Data Để xem liệu bảng STEP Với table CSDL tạo Entity class tương ứng để sử dụng JPA IT Research Department @BKAP 2015 Page [3/20] Fundamentals of Java Enterprise Components File -> New Project -> Java -> Java Application -> JPAFirstExample -> Bỏ chọn Create Main Class -> Finish Tạo Entity Class: New -> Entity Class from Database Database Connection chọn: jdbc:derby://locahost:1527/PlayerDB[root on ROOT] Chọn Add All để add tables -> Next IT Research Department @BKAP 2015 Page [4/20] Fundamentals of Java Enterprise Components IT Research Department @BKAP 2015 Page [5/20] Fundamentals of Java Enterprise Components Ở package chọn entity -> Next -> Ở cửa sổ Mapping Options -> Chọn Finish Mở package entity, có classes tạo ra: Player Team Mở thư mục META-INF thấy file persistence.xml chứa configuration persistence unit org.eclipse.persistence.jpa.PersistenceProvider entity.Player entity.Team IT Research Department @BKAP 2015 Page [6/20] Fundamentals of Java Enterprise Components Chúng ta cần ý, tên persistence unit JPAFirstExamplePU STEP Tạo main class để test với persistence unit tạo New -> Java Class -> Test Tạo main method, hàm main, sử dụng EntityManager để thực thao tác với CSDL package entity; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; IT Research Department @BKAP 2015 Page [7/20] Fundamentals of Java Enterprise Components public class Test { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("JPAFirstExamplePU"); EntityManager em = emf.createEntityManager(); em.getTransaction().begin(); Player p1 = new Player(); p1.setId(5); p1.setFirstname("Ian"); p1.setJerseynumber(30); p1.setLastname("Thorpe"); p1.setLastspokenwords("I am in the best form"); em.persist(p1); Player p2 = new Player(); p2.setId(6); p2.setFirstname("Deigo"); p2.setJerseynumber(40); p2.setLastname("Maradona"); p2.setLastspokenwords("I will be back"); em.persist(p2); em.getTransaction().commit(); em.close(); emf.close(); } } em.persist() thực add thêm ghi vào CSDL Trước chạy ứng dụng, cần thêm library Java DB Libraries -> Add Library -> Java DB Driver IT Research Department @BKAP 2015 Page [8/20] Fundamentals of Java Enterprise Components Build Run project Mở Service Tab -> View data table Player -> Xác nhận CSDL thêm ghi Bài 1.2 Mục tiêu: - Sử dụng JPA với Java EE Application STEP File -> New Project -> JavaWeb -> Web Application -> BookStore IT Research Department @BKAP 2015 Page [9/20] Fundamentals of Java Enterprise Components Chọn Glassfish -> Next -> Không chọn Frameworks -> Finish STEP Tạo CSDL BookStore giống trước dùng Database Server Java DB IT Research Department @BKAP 2015 Page [10/20] Fundamentals of Java Enterprise Components Chọn jdbc:derby://localhost:1527/BOOKSTORE[root on ROOT] -> Connect -> Execute Command Paste câu lệnh SQL sau: CREATE TABLE BOOKS ( ID INTEGER NOT NULL Primary key GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), BOOKNAME VARCHAR(255), SIGNINGDATE DATE ); INSERT INTO BOOKS (BOOKNAME, SIGNINGDATE) VALUES ('Harry Potter', '2012-0110'); INSERT INTO BOOKS (BOOKNAME, SIGNINGDATE) VALUES ('Howl Castle', '2011-1010'); Tạo bảng BOOKS ghi STEP New -> Entity Classes from Database Data Source -> New Data Source Name: jdbc/BookStore Connection: jdbc:derby://localhost:1527/BookStore[root on ROOT] IT Research Department @BKAP 2015 Page [11/20] Fundamentals of Java Enterprise Components IT Research Department @BKAP 2015 Page [12/20] Fundamentals of Java Enterprise Components IT Research Department @BKAP 2015 Page [13/20] Fundamentals of Java Enterprise Components Class Books.java tạo package entity ứng dụng Mở persistence.xml Configuration Files jdbc/BookStore false Tạo JDBC Resource tên jdbc/BookStore GlashFish server, sử dụng connection pool DerbyDB STEP Các thao tác với CSDL thực session bean New -> Java EE -> Session Bean -> BooksDAO package ejb; import entity.Books; import java.util.List; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.TypedQuery; @Stateless public class BooksDAO { // Injected database connection: @PersistenceContext private EntityManager em; IT Research Department @BKAP 2015 Page [14/20] Fundamentals of Java Enterprise Components // Stores a new book: public void persist(Books book) { em.persist(book); } // Retrieves all the books: public List getAllGuests() { TypedQuery query = em.createQuery( "SELECT g FROM Books g ORDER BY g.id", Books.class); return query.getResultList(); } } Annotation @PersistenceContext tạo instance class EntityManager chứa persistence unit BookStorePU tạo STEP STEP Tạo BookServlet New -> Servlet: BookServlet IT Research Department @BKAP 2015 Page [15/20] Fundamentals of Java Enterprise Components IT Research Department @BKAP 2015 Page [16/20] Fundamentals of Java Enterprise Components package ejb; import import import import import import import import import import import import entity.Books; java.io.IOException; java.io.PrintWriter; java.text.DateFormat; java.text.SimpleDateFormat; javax.ejb.EJB; javax.servlet.ServletException; javax.servlet.annotation.WebServlet; javax.servlet.http.HttpServlet; javax.servlet.http.HttpServletRequest; javax.servlet.http.HttpServletResponse; java.util.Date; /** * * @author ThanDieu */ @WebServlet(name = "BookServlet", urlPatterns = {"/BookServlet"}) public class BookServlet extends HttpServlet { private static final long serialVersionUID = 1L; // Injected DAO EJB: @EJB BooksDAO booksDao; @Override protected void doGet( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Display the list of guests: request.setAttribute("books", booksDao.getAllBooks()); IT Research Department @BKAP 2015 Page [17/20] Fundamentals of Java Enterprise Components request.getRequestDispatcher("/book.jsp").forward(request, response); } @Override protected void doPost( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Handle a new guest: String name = request.getParameter("name"); Books books = new Books(); books.setBookname(name); books.setSigningdate(new Date()); if (name != null) booksDao.persist(books); // Display the list of guests: doGet(request, response); } } Chúng ta thực inject EJB BooksDAO vào servlet annotation @EJB STEP Tạo trang book.jsp chứa form nhập hiển thị ghi có CSDL IT Research Department @BKAP 2015 Page [18/20] Fundamentals of Java Enterprise Components BookStore Name:
Build Chạy project kết sau: IT Research Department @BKAP 2015 Page [19/20] Fundamentals of Java Enterprise Components PHẦN 2: BÀI TẬP LÀM THÊM Hãy tạo thêm bảng Readers cho BookStore: readerID, firstName, lastName, address Tạo ReadersDAO cho phép thêm mới, getAll xoá readers từ CSDL Nhập ID để xố hiển thị tất liệu có bảng HẾT IT Research Department @BKAP 2015 Page [20/20] ... entity.Books; java. io.IOException; java. io.PrintWriter; java. text.DateFormat; java. text.SimpleDateFormat; javax.ejb.EJB; javax.servlet.ServletException; javax.servlet.annotation.WebServlet; javax.servlet.http.HttpServlet;... Các thao tác với CSDL thực session bean New -> Java EE -> Session Bean -> BooksDAO package ejb; import entity.Books; import java. util.List; import javax.ejb.Stateless; import javax.persistence.EntityManager;... tiêu: - Sử dụng JPA với Java EE Application STEP File -> New Project -> Java Web -> Web Application -> BookStore IT Research Department @BKAP 2015 Page [9/20] Fundamentals of Java Enterprise Components