使用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(); } }