zoukankan      html  css  js  c++  java
  • SpringBoot整合JPA

    1 JPA介绍

    SpringBoot使用JPA(java Persistence API)资源库来实现对数据库的操作,使用Mysql也是如此。
    
    简单的说,JPA就是为POJO(Plain Ordinary Java Object)提供持久化的标准规范,将java的普通对象通过对象关系映射持久化到数据库中。

    2 实体建模

    注解@Entity表示是实体类(必须)
    
    注解@Table 指定关联的数据库的表名(必须), name=表名, Indexes是声明表里的索引, columnList是索引的列, 同时声明此索引列是否唯一, 默认false
    
    注解@Id (必须)定义一条记录的唯一标识,并结合注解@GeneratedValue将其设置为自动生成。

    通过实体类的定义,实现了使用java的普通对象与数据库表建立映射关系(ORM),接下来使用JPA来实现持久化。

    3 实体持久化

    这是一个dao层的接口,并继承JPA资源库JpaRepository接口,使用注解@Repository将这个接口也定义为一个资源库,使他能被其他程序引用,并为其他程序提供存取数据库的功能。

    这样就实现了存取数据库的功能了。现在可以对数据库进行增删改查。
    
    或许你还有疑问,我们定义的接口并没有声明一个方法,也没有对接口有任何实现的代码,甚至连一条sql查询语句都没有写,这怎么可能?
    
    是的JPA就是这么简单。我们来看看JpaRepository的继承关系,就一目了然。

    JpaRepository继承于PagingAndSortingRepository,它提供了分页和排序功能。
    
    PagingAndSortingRepository继承于CrudRepository,它提供了简单的增删改查功能。
    
    因为定义的接口继承于Repository,所以它传递性的继承了上面所有接口,并拥有这些接口的所有方法。

    4 测试

    目录结构

    dao层代码

    service层 和 service实现类代码

     

    controller层代码

    jmeter调用controller层的save,保存一条数据到数据库中,此时数据库中是没有建表的。

     a)启动服务

     数据库中刚刚建好的表

     b) 用jmeter调用save

    控制台日志(Jpa本质上是调用的Hibernate)

     数据库数据(JPA方式已经将数据保存到数据库)

     5 总结

    1:使用JPA架构 不需要创建数据库表,服务会根据实体类的定义自动建表。
    
    2:使用JPA结构,不需要写复杂的sql代码,底层调用了Hibernate.只需要继承一个JpaRepository接口即可。
    
    3:使用JPA结构俩大核心 a) 主要是实体类的定义,注解的使用,
                         b)以及dao层几层JpaRepository接口
    加油的人生不解释
  • 相关阅读:
    Android基于mAppWidget实现手绘地图(五)--如何创建地图资源
    Android基于mAppWidget实现手绘地图(四)--如何附加javadoc
    Android基于mAppWidget实现手绘地图(三)--环境搭建
    Android基于mAppWidget实现手绘地图(二)--概要
    Android基于mAppWidget实现手绘地图(一)--简介
    网络通信之Socket与LocalSocket的比较
    Python-Django 整合Django和jquery-easyui
    Python-Django 第一个Django app
    RobotFramework 官方demo Quick Start Guide rst配置文件分析
    RobotFramework RobotFramework官方demo Quick Start Guide浅析
  • 原文地址:https://www.cnblogs.com/s6-b/p/14653742.html
Copyright © 2011-2022 走看看