使用Jpa 操作数据库完成crud

一:导入依赖

 

<dependencies>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>5.0.11.Final</version>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.16</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-c3p0</artifactId>
        <version>6.0.0.Alpha6</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.22</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.1</version>
        <scope>test</scope>
    </dependency>
</dependencies>

 

二:编写实体类

 

 @Data
 @Entity
 @Table(name = "coount")
 public class coount {
    @Id
    @Column(name = "ID")
 private int id;
    @Column(name = "NAME")
 private String name ;
    @Column(name = "MONAY")
 private  float monay;
 }

 

三:在resources目录下创建META-INF目录,并在META-INF下创建persistence.xml文件,如下

 

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
<persistence-unit name="myJpa" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<properties>
    <property name="javax.persistence.jdbc.user" value="root"/>
    <property name="javax.persistence.jdbc.password" value="2003"/>
    <property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
    <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/ya?serverTimezone=UTC"/>
   <property name="hibernate.show_sql" value="true"/>
</properties>
</persistence-unit>
</persistence>

  

四:编写工具类

public class JpaUtils {
    private static   EntityManagerFactory factory;
    static {
        /**
         * 加载配置文件创建工厂对象
         */
    factory = Persistence.createEntityManagerFactory("myJpa");
    }
    public   static EntityManager getEntityManager(){
        /**
         *  通过实体管理器工厂获取实体管理器
         */
        return factory.createEntityManager();
    }
}

 

五:实现crud

 

  public class Test {
    @org.junit.Test
    public  void save(){
        EntityManager em = JpaUtils.getEntityManager();
        /**
         *  获取事务对象,开启事务
         */
        EntityTransaction transaction = em.getTransaction();
      transaction.begin();
        /**
         *  完成crud操作
         */
        coount coount=new coount();
        coount.setId(1);
        coount.setName("小袁");
        coount.setMonay(2000);;
        /**
         * 保存操作
         */
     em.persist(coount);
        /**
         * 提交事务
         */
        transaction.commit();
        /**
         * 释放资源
         */
        em.close();
    }
    @org.junit.Test
    public void getList(){
        EntityManager entityManager = JpaUtils.getEntityManager();
        EntityTransaction tx = entityManager.getTransaction();
        tx.begin();
        coount coount = entityManager.find(coount.class, 1);
        System.out.println(coount.toString());
        tx.commit();
        entityManager.close();

    }
    @org.junit.Test
    public void remove(){
        EntityManager entityManager = JpaUtils.getEntityManager();
        EntityTransaction tx = entityManager.getTransaction();
        tx.begin();
        coount coount = entityManager.find(coount.class, 1);
         entityManager.remove(coount);
        tx.commit();
        entityManager.close();

    }
    @org.junit.Test
    public void update(){
        EntityManager entityManager = JpaUtils.getEntityManager();
        EntityTransaction tx = entityManager.getTransaction();
        tx.begin();
        coount coount = entityManager.find(coount.class, 1);
        coount.setMonay(1000000000);
        entityManager.merge(coount);
        tx.commit();
        entityManager.close();

    }
}

 

 

 

 

posted @ 2021-04-04 15:24  袁志航  阅读(118)  评论(0编辑  收藏  举报