zoukankan      html  css  js  c++  java
  • JPA删除实体

    要从数据库中删除记录,可以使用EntityManager接口提供remove()方法。remove()方法使用主键来删除特定的记录。

    JPA实体删除示例

    在这里,我们将演示如何根据主键删除指定学生的信息。

    完整的项目代码如下所示 -

    这个例子包含以下步骤 -

    第1步:com.yiibai.jpa.student包下创建一个名为StudentEntity.java的实体类,它包含属性:s_ids_names_age

    文件:StudentEntity.java 的代码如下 -

    package com.yiibai.jpa.student;
    
    import javax.persistence.*;
    
    @Entity
    @Table(name = "student")
    public class StudentEntity {
    
        @Id
        private int s_id;
        private String s_name;
        private int s_age;
    
        public StudentEntity(int s_id, String s_name, int s_age) {
            super();
            this.s_id = s_id;
            this.s_name = s_name;
            this.s_age = s_age;
        }
    
        public StudentEntity() {
            super();
        }
    
        public int getS_id() {
            return s_id;
        }
    
        public void setS_id(int s_id) {
            this.s_id = s_id;
        }
    
        public String getS_name() {
            return s_name;
        }
    
        public void setS_name(String s_name) {
            this.s_name = s_name;
        }
    
        public int getS_age() {
            return s_age;
        }
    
        public void setS_age(int s_age) {
            this.s_age = s_age;
        }
    
    }
    
    Java

    第2步: 将实体类和其他数据库配置映射到persistence.xml文件中。

    文件:persistence.xml 的代码如下 -

    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="2.1"
        xmlns="http://xmlns.jcp.org/xml/ns/persistence"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
        <persistence-unit name="Student_details">
            <class>com.yiibai.jpa.student.StudentEntity</class>
            <properties>
                <property name="javax.persistence.jdbc.driver"
                    value="com.mysql.jdbc.Driver" />
                <property name="javax.persistence.jdbc.url"
                    value="jdbc:mysql://localhost:3306/testdb?serverTimezone=UTC" />
                <property name="javax.persistence.jdbc.user" value="root" />
                <property name="javax.persistence.jdbc.password" value="123456" />
                <property name="eclipselink.logging.level" value="SEVERE" />
                <property name="eclipselink.ddl-generation"
                    value="create-or-extend-tables" />
            </properties>
        </persistence-unit>
    
    </persistence>
    
    XML

    com.yiibai.jpa.student包下创建一个名为DeleteStudent.java的持久化类,以便将实体对象与数据保持一致。

    文件:DeleteStudent.java 的代码如下 -

    package com.yiibai.jpa.student;
    
    import javax.persistence.*;
    
    public class DeleteStudent {
    
        public static void main(String args[]) {
            EntityManagerFactory emf = Persistence.createEntityManagerFactory("Student_details");
            EntityManager em = emf.createEntityManager();
            em.getTransaction().begin();
    
            StudentEntity s = em.find(StudentEntity.class, 1001);
            em.remove(s);
            em.getTransaction().commit();
            em.close();
            emf.close();
    
        }
    }
    
    Java

    在执行上面示例代码之前,在MySQL工作台下运行select * from student查询学生数据信息,应该可以看到有3条学生的详细信息。 在执行上面示例代码之后,再次在MySQL工作台下运行select * from stduent查询,应该会看到ID是1001的记录被删除了。

  • 相关阅读:
    算算百度云的总成本
    iCloud 包括文稿与数据、日历、提醒事项、 通讯录、备忘录、Safari书签
    娄师德的低调
    我必须创业,否则那5个月的工资谁来发给我
    完整的struts.xml文件骨架
    从程序员的角度谈创业三年
    Delphi 获取Internet缓存文件 -- FindFirstUrlCacheEntry FindNextUrlCacheEntry
    没有别人聪明不可怕,可怕的是别人比你聪明也比你勤奋(活着总要为自己负责,而且首先是对自己的时间负责)
    光思想对是没有用的
    Mac与Linux的一个巨大不同
  • 原文地址:https://www.cnblogs.com/borter/p/12423941.html
Copyright © 2011-2022 走看看