广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州JPA实体管理器如何创建动态查询?_北大青鸟IT学校

作者:邓华发布时间:2021-04-30分类:Java技术浏览:894


导读:JPA实体管理器如何创建动态查询?相信大家在学习Java的过程都会遇到各种各样的问题,例如:JPA实体管理器如何创建动态查询?那么下面我们一起来看看惠州北大青鸟学术部老师是怎么回答的。

JPA实体管理器如何创建动态查询?相信大家在学习Java的过程都会遇到各种各样的问题,例如:JPA实体管理器如何创建动态查询?那么下面我们一起来看看惠州北大青鸟学术部老师是怎么回答的。

在JPA中,有一种称为Java持久性查询语言(JP QL)的新的查询语言。

以下示例显示如何创建动态查询,然后执行它以获取数据库中的所有员工。

TypedQuery<Employee> query =
    em.createQuery("SELECT e FROM Employee e",
                    Employee.class);
List<Employee> emps = query.getResultList();

我们通过在EntityManager上发出createQuery()调用并传入 JP QL 字符串来创建一个TypedQuery<Employee>对象。

JP QL 字符串不是指EMPLOYEE数据库表,而是Employee实体。

实例

以下代码显示了一个简单的完全功能类,可用于对Employee实体发出典型的创建,读取,更新和删除(CRUD)操作。

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.TypedQuery;public class EmployeeService {  protected EntityManager em;  public EmployeeService(EntityManager em) {
   this.em = em;
 }  public Employee createEmployee(int id, String name, long salary) {
   Employee emp = new Employee(id);
   emp.setName(name);
   emp.setSalary(salary);
   em.persist(emp);
   return emp;
 }  public void removeEmployee(int id) {
   Employee emp = findEmployee(id);    if (emp != null) {
     em.remove(emp);
   }
 }  public Employee raiseEmployeeSalary(int id, long raise) {
   Employee emp = em.find(Employee.class, id);    if (emp != null) {
     emp.setSalary(emp.getSalary() + raise);
   }
   return emp;
 }  public Employee findEmployee(int id) {
   return em.find(Employee.class, id);
 }  public List<Employee> findAllEmployees() {
   TypedQuery<Employee> query = em.createQuery("SELECT e FROM Employee e",
       Employee.class);
   return query.getResultList();
 }
}

主类

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;public class Main {  public static void main(String[] args) {
   EntityManagerFactory emf = Persistence
       .createEntityManagerFactory("EmployeeService");
   EntityManager em = emf.createEntityManager();
   EmployeeService service = new EmployeeService(em);

   em.getTransaction().begin();
   Employee emp = service.createEmployee(1, "Tom", 5000);
   em.getTransaction().commit();
   System.out.println("Persisted " + emp);

   emp = service.findEmployee(1);
   System.out.println("Found " + emp);

   List<Employee> emps = service.findAllEmployees();    for (Employee e : emps)
     System.out.println("Found employee: " + e);

   em.getTransaction().begin();
   emp = service.raiseEmployeeSalary(1, 1000);
   em.getTransaction().commit();
   System.out.println("Updated " + emp);

   em.getTransaction().begin();
   service.removeEmployee(158);
   em.getTransaction().commit();
   System.out.println("Removed Employee 158");

   em.close();
   emf.close();
 }
}

想了解更多关于Java的资讯,可以来惠州北大青鸟新方舟校区了解一下。

Java12.jpg

Java

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表