JPA搭建及简单实例

JPA 搭建以及简单实例

eclipse    mysql     Hibernate5.2.17      JPA2.1

一、JPA 概述

1、JPA是 Java Persistence API(Java 持久层 API)的简称,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体类对象持久化到数据库中。作用:使得应用程序以统一的方式访问持久层

2、JPA 与 Hibernate的什么关系:

        1)JPA 是 Hibernate 的一个抽象

        2)Hibernate 是 JPA 的一个实现

3、JPA 包括三个方面的技术:

        1)ORM JavaBean和数据库中的数据表建立映射关系,支持 XML 和 注解 两种形式

        2)JPA 的 API

        3)查询语言:JPQL,jpql其原型就是hibernate的hql

 

1、创建一个maven的java工程,引入pom.xml依赖:

        hibernate-entitymanager 依赖包:使用Hibernate来进行实体的管理,实现实体的CRUD操作,只需要引入这个依赖包即可,其它需要依赖的包将由maven自动引入,这样我们就不用关系具体需要依赖哪些jar包了。    

	

		
			org.hibernate
			hibernate-entitymanager
			5.2.17.Final
		

		
			mysql
			mysql-connector-java
			5.1.46
		

		
			junit
			junit
			4.12
			test
		
	

   JPA搭建及简单实例_第1张图片

2、创建JPA的核心配置文件src/main/resources/META-INF/persistence.xml

        META-INF/persistence.xml 文件夹自己创建, 并配置三块基本的信息:



	
	
	
		
		org.hibernate.jpa.HibernatePersistenceProvider
		
			
			
			
			
			
			
			
			
			
			
		
	
	

3、创建实体类,并用注解链接实体类和数据表的映射关系

        提示:此注解可以标注在getter方法或属性前。

@Entity
@Table(name="t_user")
public class User {

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY) //自增长
	private int id;
	@Column(name="user_name")
	private String username;
	private String password;
    ...
}

4.使用junit测试:

	@Test
	public void test() {
		//1.创建entityManagerFactory -- 参数为的name值
		EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("jpademo");
		//2.创建EntityManager
		EntityManager entityManager = entityManagerFactory.createEntityManager();
		//3.开启事务处理
		EntityTransaction transaction = entityManager.getTransaction();
		transaction.begin();
		//4.执行数据的CRUD
		User user = new User();
		user.setUsername("admin");
		user.setPassword("admin123");
		entityManager.persist(user);
		//5.提交事务
		transaction.commit();
		//6.关闭entityManager和entityManagerFactory
		entityManager.close();
		entityManagerFactory.close();
		
	}

    JPA搭建及简单实例_第2张图片

EntityManager操作数据库的方法:主要作用就是操作数据库,执行增删改查,对应的方法persist(增),find和getReferenc(查一条记录),remove (删),merge(改)

persist(增),--> save 区别:save可添加游离态对象,persist不能  

find --> get  立即加载

getReferenc  --> load   延迟(懒)加载,使用查询对象是才发起sql查询

remove (删) 只能删除持久态对象(先查在删,不可以根据id对象删) -->delete 游离态user.set(3)和持久态对象都可以删除

merge(改)     --> saveorupdate()

到此,JPA 简单实例完成。

 

你可能感兴趣的:(JPA)