举报投诉联系我们 手机版 热门标签 编程学
您的位置:编程学 > jpa更新操作 JPA 更新示例

jpa更新操作 JPA 更新示例

2023-03-03 19:18 Java教程

jpa更新操作 JPA 更新示例

jpa更新操作

JPA更新操作是在Java Persistence API(JPA)中实现的一种数据库操作,用于更新已存在的数据库记录。它可以使用EntityManager对象来执行,也可以使用Query对象来执行。

EntityManager是JPA中最重要的组件之一,它是一个用于管理实体对象的工具。它可以用来创建、读取、更新和删除实体对象。EntityManager还可以用来执行JPQL语句(Java Persistence Query Language),这是一种面向对象的SQL语法。

Query对象也是JPA中重要的组件之一,它可以用来执行JPQL语句。Query对象有两个重要的方法executeUpdate()和executeUpdate(),前者用于执行INSERT、UPDATE或DELETE语句,而后者则用于执行SELECT语句。

// 使用 EntityManager 来更新数据库记录 
EntityManager em = emf.createEntityManager(); 
em.getTransaction().begin(); 
User user = em.find(User.class, 1);  // 查找 id 为 1 的 User 对象 
user.setName("John"); // 更新 User 对象的 name 属性 
em.getTransaction().commit();  // 提交事务 
em.close(); // 关闭 EntityManager  

   // 使用 Query 来更新数据库记录  
Query query = em.createQuery("UPDATE User u SET u.name = :name WHERE u.id = :id");  
query.setParameter("name", "John");   // 设置 name 参数  
query.setParameter("id", 1);          // 设置 id 参数  
int result = query.executeUpdate();   // 执行 UPDATE 语句  

 

JPA 更新示例

JPA教程 - JPA更新示例


以下代码显示了如何通过仅使用映射实体的setter方法来更新实体。

下面的代码在persist方法调用后用setter方法更新name字段。

从下一节中的数据库转储我们可以看到,新的值被保存到数据库。

    Professor emp = new Professor();

    emp.setId(1);
    emp.setName("name");
    em.persist(emp);
    
    emp.setName("New name");

例子

以下代码来自Professor.java。

package cn..common;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity 
@Table(name="EMP")
public class Professor  {
    @Id private int id;
    private String name;
    public int getId() {
        return id;
    }
    
    public void setId(int id) {
        this.id = id;
    }
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    public String toString() {
        return "Professor id: " + getId() + " name: " + getName();
    }
}

下面的代码来自PersonDaoImpl.java。

package cn..common;


import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.springframework.transaction.annotation.Transactional;

@Transactional
public class PersonDaoImpl {
  public void test(){
    
    Professor emp = new Professor();

    emp.setId(1);
    emp.setName("name");
    em.persist(emp);
    
    emp.setName("New name");
  }
  @PersistenceContext
  private EntityManager em;
}
下载 Update.zip

以下是数据库转储。

Table Name: EMP
 Row:
    Column Name: ID,
    Column Type: INTEGER:
    Column Value: 1

    Column Name: NAME,
    Column Type: VARCHAR:
    Column Value: New name


阅读全文
以上是编程学为你收集整理的jpa更新操作 JPA 更新示例全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 编程学 bianchengxue.com 版权所有 联系我们
桂ICP备19012293号-7 返回底部