jpa hiberneate springdata jpa的关系

什么时jpa?

    全称java Persistence API,可以通过注解或XML描述{对象-关系表}之间的映射,并将尸体对象持久化到数据库里面。

    1)ORM映射元数据:支持XML和注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架将实体对象持久化到数据库中

        如:@Entity    @Table     @column    @Transisent

            @Entity:修饰实体类,指定该类将映射到指定的数据库

            @Table:当实体类与映射类的数据库表名不同时需要使用@Table注解,该注解与@Entity并列使用


            @Id:标识微主键,一般标识在getter方法上

                 –IDENTITY:采用数据库 ID自增长的方式来自增主键字段,Oracle 不支持这种方式;

                 –AUTOJPA自动选择合适的策略,是默认选项;

                 –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信息

--完--

转载于

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容