理解JPA,Spring Data JPA,Hibernate JPA和ORM框架。

1,不使用JPA,不使用ORM框架开发的方式。

1)不使用ORM框架开发的模式下
(View层) 前端页面使用jsp,或者thymeleaf。
使用Spring MVC框架,Controller层和Service层都是使用Spring核心的IOC功能。
DAO层,使用传统的JDBC,或者使用spring的JdbcTemplate进行数据库操作即可。这个时候,可以省去domian层, 只需要简单的java info类,来存储从数据库里查询出来的信息即可。
2)JPA
JPA(Java Persistence Api)规范本质上就是一种ORM规范,Hibernate JPA是JPA的一种底层实现,其他的实现还有TopLink JPA、OpenJPA等。
使用JPA规范,可以更换其实现而不必改动太多代码。

理解JPA,Spring Data JPA,Hibernate JPA和ORM框架。_第1张图片
image.png

3)Spring Data Jpa
Spring Data Jpa,是在JPA的规范下,提供了respository层(数据访问层)的实现。是对JPA的再次封装和抽象,底层还是要使用JPA的具体实现,如Hibernate JPA作为JPA规范的实现。
spring-data-jpa会依赖引入spring-jdbc,spring-tx,spring-orm等jar包
理解JPA,Spring Data JPA,Hibernate JPA和ORM框架。_第2张图片
image.png

2,对于ORM框架。

Hibernate 和 mybatis。
Hibernate是符合JPA规范的完备的ORM框架;Mybatis更偏向于sql mapping,是一个持久层的sql mapping框架。
spring提供了对hibernate的支持

理解JPA,Spring Data JPA,Hibernate JPA和ORM框架。_第3张图片
image.png

Spring并没有提供对mybatis的集成支持。但mybatis提供了 compile group: 'org.mybatis', name: 'mybatis-spring', version: '1.3.0',将 MyBatis 代码无缝地整合到 Spring 中。
mybatis 是一个ORM框架。
Hibernate 是一个持久化框架和ORM框架。

3,数据库的字段与JPA实体的属性。

Field Type Null Key Default Extra
type tinyint(4) YES 1

private int type;(TestBean)
当使用hibernate.save(testBean) 或者spring data JPA save(testBean)时,testBean的type为0。保存的时候会使用0来更新数据字段。
@Column(name="type", columnDefinition="tinyint(4) default '1'")或者
@Column(name="type")
private int price = 1;

你可能感兴趣的:(理解JPA,Spring Data JPA,Hibernate JPA和ORM框架。)