什么时jpa?
全称java Persistence API,可以通过注解或XML描述{对象-关系表}之间的映射,并将尸体对象持久化到数据库里面。
1)ORM映射元数据:支持XML和注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架将实体对象持久化到数据库中
如:@Entity @Table @column @Transisent
@Entity:修饰实体类,指定该类将映射到指定的数据库
@Table:当实体类与映射类的数据库表名不同时需要使用@Table注解,该注解与@Entity并列使用
@Id:标识微主键,一般标识在getter方法上
–IDENTITY:采用数据库 ID自增长的方式来自增主键字段,Oracle 不支持这种方式;
–AUTO:JPA自动选择合适的策略,是默认选项;
–SEQUENCE:通过序列产生主键,通过 @SequenceGenerator 注解指定序列名,MySql 不支持这种方式
–TABLE:通过表产生主键,框架借由表模拟序列产生主键,使用该策略可以使应用更易于数据库移植
@GeneratedValue:标识主键的生成策略,通过strategy属性,通常与@Id一起使用
@cloumn:当实体的属性与映射的数据表的列不同名时使用,一般用在getter方法上,其name属性用来指定次属性在数据表中对应的列明unique 属性指明是否为唯一约束;nullable 属性用来指明是否可以为空,false 为不能为空;length 属性指明此列的长度。
@Tansisten:标注此注解后在创建数据表的时候将会忽略该属性,类并没有这个属性,所以数据库中也不应该有这个字段
@Temporal:向数据库映射日期(Date)属性时用来调整映射的精度。Date 类型的数据有DATE, TIME, 和 TIMESTAMP三种精度(即单纯的日期,时间,或者两者兼备),Birth 属性应该使用 DATE 类型(生日只具体到日即可,如:2015-10-22),而 CreateTime 应该使用 TIMESTAMP 类型(创建时间应该具体到秒,如:2017-10-11 22:39:13)
2)JPA的API:用来操作实体对象,执行CRUD操作,框架替我们完成做所有操作。
EntityManager.merge(T t)
3)JPOL查询语句:通过面向对象而非面向对象数据库的查询语句查询数据,避免程序的sql语句紧密耦合
什么时spring data jpa?
是spring提供的一套简化的JPA的开发框架,按照约定好的「方法命名规则」写dao层接口,就可以在不写接口实现的情况下,实现对数据库的访问和操作,同时提供了很多的除了CRUD之外的功能,如分页、排序、复杂查询等等。
接口约定命名规则:
实例:
springboot集成spring data jpa只需两步:
第一步:导入maven坐标
第二步:yml配置文件中配置jpa信息
--完--