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
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();
}
EntityManager操作数据库的方法:主要作用就是操作数据库,执行增删改查,对应的方法persist(增),find和getReferenc(查一条记录),remove (删),merge(改)
persist(增),--> save 区别:save可添加游离态对象,persist不能
find --> get 立即加载
getReferenc --> load 延迟(懒)加载,使用查询对象是才发起sql查询
remove (删) 只能删除持久态对象(先查在删,不可以根据id对象删) -->delete 游离态user.set(3)和持久态对象都可以删除
merge(改) --> saveorupdate()
到此,JPA 简单实例完成。