1.JPA简介
- 什么是JPA?JPA的优点有哪些?
JPA是ORM框架的一套规范,它只提供接口,实现过程要其他框架进行实现。优点在于学习了JPA的一套规范后,以后只要是参考JPA规范的框架,我们不需要更改内容,只需要更改一下配置就可以使用。
2.什么是ORM?
对象关系映射,Object Relational Mapping ,通过使用描述对象和数据库之间映射的元数据,将面向对象语言程序中的对象持久化到数据库中。
2.JPA的实现过程
1.导入pom.xml文件,需要导入的包有
junit 4.9
hibernate-entitymanager 5.0.7.Final
hibernate-c3p0 5.0.7.Final
Log4j 1.2.17
mysql-connector-java 5.1.6
2.需要编写persistence.xml文件(必须在META-INF)文件夹中
3.创建实体类,并且配置好对应映射。
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id")
private long userId;
@Column(name = "user_name")
private String userName;
@Column(name = "user_phone")
private String userPhone;
}
4.通过jpa进行CRUD
(1).加载配置文件创建实体管理类工厂对象
Factory = Persistent.create Entity Manager Factory(“myJap”);
(2). 通过实体管理类工厂获取实体管理器
EntityManager em= factory.createEntityManager();
(3).获取事物对象,开启事务
EntityTransaction tx=em.getTransaction();
Tx.begin();
(4).增删改查
(5).提交事务(回滚事务)
Tx.commit();
(6).释放资源
Em.close();
//(1).加载配置文件创建实体管理类工厂对象
Factory = Persistent.create Entity Manager Factory(“myJap”);
//(2). 通过实体管理类工厂获取实体管理器
EntityManager em= factory.createEntityManager();
//(3).获取事物对象,开启事务
EntityTransaction tx=em.getTransaction();
Tx.begin();
//(4).增删改查
//(5).提交事务(回滚事务)
Tx.commit();
//(6).释放资源
Em.close();
5.CRUD的各种方法
(1)添加
em.persist(User);
(2)删除
em.remove(User);
(3)查询
通过各种条件查询,需要先设置需要查询的表的属性,通过属性进行查询
em.merge(User);
根据主键查询
em.find(User.class,2L);
查询全部(使用jpql的方式查询)
String jpql="from User";
Query query=em.createQuery(jpql);
添加参数,可以进行分页查询
query.setFirstResult(0);//查询开始点
query.setMaxResults(5);//查询数量
List list=query.getResultList();
条件查询
String jpql="from User where Id>=3 and mame like ? ";
Query query=em.createQuery(jpql);
query.setParameter(1,"%洲%");//第一个参数是参数的顺序,这里只有一个参数,所以是第一个,值为包含洲的名字
List list=query.getResultList();
对于复杂查询的有关步骤
复杂查询需要使用JPQL语句,这个就是面向实体类的查询语句
(1) 编写jpql语句
(2) 通过实体管理类创建Query,参数为jpql语句
(3) 再query中设置参数(有的就设)
(4) 调用方法进行查询