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

Thực hành EJB (Enterprise Java Bean) Lab 11

7 201 1

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 533,67 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

IT Research Department @BKAP 2015 Page 1 / 7 Lab 11 Query and Criteria API Mục tiêu - Sử dụng Criteria Query API để viết các truy vấn Phần I Bài tập step by step Bài 7.1 Xây dựng t

Trang 1

IT Research Department @BKAP 2015 Page 1 / 7

Lab 11

Query and Criteria API

Mục tiêu

- Sử dụng Criteria Query API để viết các truy vấn

Phần I Bài tập step by step

Bài 7.1

Xây dựng truy vấn tìm danh sách customer theo Customer Name trong ứng dụng EJB xây dựng ở bài 6.1 và 6.2

Step 1: Khai báo phương thức searchCustomer ở CRMApplication-ejb 

CustomerBeanLocal.java

 CustomerBeanLocal.java

package beanpack;

import entity.Address;

import entity.Customer;

import java.util.List;

import javax.ejb.Local;

/**

*

* @author Quang

*/

@Local

public interface CustomerBeanLocal {

public void createCustomer(Customer customer, List<Address> listAddress);

public List<Customer> searchCustomer(String custName);

}

Trang 2

IT Research Department @BKAP 2015 Page 2 / 7

Step 2: Thực thi phương thức searchCustomer ở CustomerBean.java Sử dụng Criteria

query để truy vấn các customer theo Customer Name

 CustomerBean.java

package beanpack;

import entity.Address;

import entity.Customer;

import entity.Customer_;

import java.util.List;

import javax.ejb.Stateless;

import javax.ejb.TransactionManagement;

import javax.ejb.TransactionManagementType;

import javax.persistence.EntityManager;

import javax.persistence.PersistenceContext;

import javax.persistence.TypedQuery;

import javax.persistence.criteria.CriteriaBuilder;

import javax.persistence.criteria.CriteriaQuery;

import javax.persistence.criteria.ParameterExpression;

import javax.persistence.criteria.Root;

/**

*

* @author Quang

*/

@Stateless

@TransactionManagement(TransactionManagementType.CONTAINER)

public class CustomerBean implements CustomerBeanLocal {

//Persistence

@PersistenceContext(unitName = "CRMApplication-ejbPU")

EntityManager em;

@Override

public void createCustomer(Customer customer, List<Address> listAddress) {

customer.setListAddress(listAddress);

for (Address addr : listAddress) {

addr.setCustomer(customer);

}

em.persist(customer);

}

@Override

public List<Customer> searchCustomer(String custName) {

List<Customer> listCus = null;

CriteriaBuilder cb = em.getCriteriaBuilder();

//Tao doi tuong CriteriaQuery tu cb

CriteriaQuery<Customer> cq = cb.createQuery(Customer.class);

//Tao root interface tu criteria query

Root<Customer> cust = cq.from(Customer.class);

// Tao ParameterExpression

ParameterExpression<String> p = cb.parameter(String.class);

//dieu kien truy van

cq.select(cust).where(cb.like(cust.get(Customer_.customerName), "%" + custName + "%"));

Trang 3

IT Research Department @BKAP 2015 Page 3 / 7

//Tao loai truy van

TypedQuery<Customer> query = em.createQuery(cq);

//Nhan ket qua

listCus = query.getResultList();

return listCus;

}

}

Step 3: Tạo form nhập thông tin Customer Name để search

 CRMApplication-war  Web Pages  New  Other  Web  JSP

 CustomerSearch.jsp

<%@ page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPEhtml>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Customer Search Page</title>

</head>

<body>

<form name="CustSearchForm" method="POST" action="CustomerSearch">

<table colspan="2">

<tr>

<td>Customer Name: </td>

<td><input type="text" size="20" name="customerName"/></td>

</tr>

<tr>

<td colspan="2" align="center"><input type="submit" value="Search"/></td>

</tr>

</table>

</form>

</body>

</html>

Step 4: Tạo Servlet CustomerSearchServlet thực hiện việc search Customer theo Customer

Name

 CRMApplication-war  Source Packages  Servlet  New  Other  Web  Servlet

Trang 4

IT Research Department @BKAP 2015 Page 4 / 7

 CustomerSearchServlet.java

package servlet;

import beanpack.CustomerBeanLocal;

Trang 5

IT Research Department @BKAP 2015 Page 5 / 7

import entity.Address;

import entity.Customer;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.List;

import javax.ejb.EJB;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

*

* @author Quang

*/

public class CustomerSearch extends HttpServlet {

//Goi Enterprise Bean

@EJB

private CustomerBeanLocal customerBean;

/**

* Processes requests for both HTTP <code> GET </code> and <code> POST </code>

* methods

*

* @param request servlet request

* @param response servlet response

* @throws ServletException if a servlet-specific error occurs

* @throws IOException if an I/O error occurs

*/

protected void processRequest(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html;charset=UTF-8");

//Nhan thong tin Customer Name nhap vao de search

String custName = request.getParameter("customerName");

try (PrintWriter out = response.getWriter()) {

/* TODO output your page here You may use following sample code */

out.println("<!DOCTYPE html>");

out.println("<html>");

out.println("<head>");

out.println("<title>Servlet CustomerSearch</title>");

out.println("</head>");

out.println("<body>");

//Goi phuong thuc searchCustomer

List<Customer> listCus = customerBean.searchCustomer(custName);

//Hien thi danh sach Customer tim duoc

out.println("<table border='1'><tr><th>Customer Name</th><th>Address</th></tr>");

for (Customer cust : listCus) {

out.println("<tr><td>"+cust.getCustomerName()+"</td><td>");

for (Address addr : cust.getListAddress()) {

out.println("Address Type - "+addr.getAddressType());

out.println("| Address Line - "+addr.getAddressLine() +"<br/>");

}

out.println("</td></tr>");

}

out.println("</table>");

Trang 6

IT Research Department @BKAP 2015 Page 6 / 7

out.println("</body>");

out.println("</html>");

}

}

// <editor-fold defaultstate="collapsed" desc="HttpServlet methods Click on the + sign on the left to edit the code.">

/**

* Handles the HTTP <code> GET </code> method

*

* @param request servlet request

* @param response servlet response

* @throws ServletException if a servlet-specific error occurs

* @throws IOException if an I/O error occurs

*/

@Override

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

processRequest(request, response);

}

/**

* Handles the HTTP <code> POST </code> method

*

* @param request servlet request

* @param response servlet response

* @throws ServletException if a servlet-specific error occurs

* @throws IOException if an I/O error occurs

*/

@Override

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

processRequest(request, response);

}

/**

* Returns a short description of the servlet

*

* @return a String containing servlet description

*/

@Override

public String getServletInfo() {

return "Short description";

}// </editor-fold>

}

 Ứng dụng sau khi hoàn thành

Trang 7

IT Research Department @BKAP 2015 Page 7 / 7

Step 5: Build and Run Application

Ngày đăng: 07/05/2018, 16:34

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