什么是JPA(与JDBC的区别)
- 相同点:
1:都跟数据库操作有关,JPA是JDBC的升级版
2:JDBC和JPA都是一组规范接口
3:都是sun官方推出 - 不同点
1:JDBC是由各个关系数据库实现的,JPA是ORM框架实现的
2:JDBC使用sql语句与数据库通讯,JPA是面向对象方式,通过ORM框架来生成sql ,进行操作。
3:JPA是在JDBC之上的,需要通过JDBC才能操作数据库
JPA规范给我门提供一下信息
1:ORM映射元数据:
如@Entity(标记实体) ,@Table(表的对应关系),@Id(主键),@Column(列)等注解来描述对象和表之间的映射关系
2:API:用来操作实体,执行crud操作
如:entityManager,merge(T t)
3:JPQL查询语句:通过面相对象而非数据库的查询语句
如:select order o where o.id=‘SH12132323’
数据仓储
1:通过实现jpa相关接口(包含按照jpa规则定义接口)
2:动态编写sql
3:自定义:QueryDSL(实现 QuerydslpredicateExecutor)
4:自定义操作-Specifications(JpaSpecificationExecutor)
多表关联关系(hibernate实现)
可以参考hibernate官网
@OneToOne
@OneToMany
@ManyToOne
@ManyToMany