第一阶段源码分析-SpringDataJpa
2020-07-20 23:03:57 0 举报
AI智能生成
SpringJpa相关笔记
作者其他创作
大纲/内容
介绍:Spring Data JPA 是Spring基于JPA规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据库的访问和操作
Spring Data JPA,JPA规范和Hibernate之间的关系
Spring Data JPA是Spring提供的一个封装了JPA操作的框架,而JPA仅仅是规范,单独使用规范无法具体做什么
如图
Spring Data JPA应用
开发步骤梳理
创建工程导入坐标(Java框架于我们而言就是一堆jar)
配置Spring的配置文件(配置指定框架执行的细节)
1.创建数据库连接池druid
2.配置一个JPA中非常重要的对象,entityManagerFactory
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
配置数据源
配置包扫描
指定jpa的具体实现,也就是hibernate
属性:persistenceProvider
class="org.hibernate.jpa.HibernatePersistenceProvider"
jpa方言配置,不同的jpa实现对于类似于beginTransaction等细节实现起来时不一样的,所以传入JpaDialect具体的实现类
属性:jpaDialect
class="org.hibernate.jpa.HibernatePersistenceProvider"
配置具体provider,hibearnte框架的执行细节
属性:jpaVendorAdapter
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"
配置数据表是否自动创建 name="generateDdl"
指定数据库类型,hibernate本身是个dao层框架,可以支持多重数据库类型的,这里就指定本次使用的什么数据库 name="database" , value="MYSQL"
配置数据库的方言,hiberante可以帮我们拼装sql语句,但是不同的数据库sql语法是不同的,所以需要我们注入具体的数据库方言 name="databasePlatform" value="org.hibernate.dialect.MySQLDialect"
是否显示sql,操作数据库时,是否打印sql name="showSql"
3.引用上面创建的entityManagerFactory,<jpa:repositories>配置jpa的dao层细节
4.事务管理器配置,jdbcTemplate/mybatis 使用的是DataSourceTransactionManager。 jpa规范:JpaTransactionManager
5.声明式事务配置
6.配置spring包扫描
编写实体类Resume,使用JPA注解配置映射关系
实体类和数据表映射关系
@Entity
@Table
实体类属性和表字段的映射关系
@Id 标识主键
@GeneratedValue 标识主键的生成策略
IDENTITY:依赖数据库中主键自增功能 Mysql
SEQUENCE:依靠序列来产生主键 Oracle
@Column 建立属性和字段映射
编写一个符合SpringDataJPA的Dao层接口(ResumeDao接口)
需要继承两个接口
JpaRepository<操作的实体类类型,主键类型>,封装了基本的CRUD操作
JpaSpecificationExecutor<操作的实体类类型> 封装了复杂的查询(分页、排序等)
实际应用的几种实现方式
常规使用
查
早期版本
现在版本
增
改
删
排序
分页
引入jpql:jpql 语句类似于sql,只不过sql操作的是数据表和字段,jpql操作的是对象和属性,比如 from Resume where id=xx) hql
引入sql
必须把参数中,nativeQuery设置为true
方法命名规则方式
使用JpaSpecificationExecutor接口
单个条件
多个条件
0 条评论
下一页