文档:D:\springdata
SpringData是一个用来简化dao层开发的框架.在保证了各个底层存储特性同时,提供了一套统一的数据访问API.它可以很好的支持常用的关系型数据库和非关系型数据库.
使用SpringData做为dao层开发技术,将大大简化代码,而且其API比各个技术的原生API更加简单易用
SpringData支持的持久层技术非常多,下面是几个常见的
1.Spring Data common-------SpringData的核心模块,定义了SpringData的核心功能
2.Spring Data JDBC-----------对JDBC的的封装
3.Spring Data JPA--------------对JPA的封装
4.Spring Data MongoDB------对MongoDB的基于Spring对象文档的存储支持
5.Spring Data Redis------------封装jedis技术,对redis实现访问操作
6.Spring Data Elasticsearch---对Elasticsearch实现访问操作
JPA:java持久层API,是SUN公司退出的一套基于ORM的规范,注意不是ORM框架
,ORM(映射)框架比如,Hibernate,Mybatis(准确讲算半自动ORM框架)
JPA只提供了一些编程API接口即规范,并未实现
新建个库springdata 插入下面这张表
新建一个子模块
pom.xml
<dependencies>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<!--hibernate-->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.0.7.Final</version>
</dependency>
<!--junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!--log4j-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
实体类导入的注解都是javax包下的
加入JPA的核心配置文件
JAP规定
查询
JPA中修改:要求先查询再修改
JPA中删除:要求先查询再删除
关于JPA配置文件
可以将数据库表删掉试下
上面就是原生JPA的写法
关于JPA的重要API介绍:
EntityManagerFactory:
EntityManagerFactory接口主要用来创建EntityManager实例,
EntityManagerFactory是一个线程安全的对象,并且其创建机器浪费资源,所以编程的时候要保持单例的
EntityManager:
在JPA规范中,EntityManager是操作数据库的重要API,他是线程不安全的,需要保持线程独有.
重要方法说明:
getTransaction:获取事务对象
persist:保存操作
merge:更新操作
remove:删除操作
find/getReference:根据id查询