1. Trang chủ
  2. » Công Nghệ Thông Tin

Thực hành Java Web Lab 11

20 224 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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 Lab 11 Java 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ực hà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 -> Java Web -> 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

Ngày đăng: 07/05/2018, 15:47

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w