首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第三十章:Spring-data-jpa的集成和使用

前言

在前面的

第九章:Mybatis-plus的集成和使用

章节中,介绍了使用 框架 进行数据库的访问。今天,我们来简单学习下如何使用 进行数据库的访问。由于本人未使用过 ,也是趁着写博文的机会查阅了相关资料下,有错误的地方还望指出!

前言

一点知识

何为JPA

何为Sping-data-jpa

SpringBoot集成Spring-data-jpa

参考资料

总结

最后

老生常谈

一点知识

何为JPA

是 的简写,是 官方提出的一种 规范!

对于 官网而言,一是想简化现有 和 应用开发工作。 二是想整合ORM技术,实现天下归一

对于 规范,都在包路径: 下,像一些常用的如: 、 及 都在此路径下。这些也是一些现在市面上常用的 一些约定俗成的注解了。

简单来说, 是一套规范。所以使用Jpa的一个好处是,可以更换实现而不必改动太多代码。

何为Sping-data-jpa

是 基于 开发的一个 框架。可以极大的简化 的写法,可以在几乎不用写具体代码的情况下,实现对数据的访问和操作。除了 外,还包括如 、 等一些常用的功能。

Spring Data JPA提供的接口,也是Spring Data JPA的核心概念:

:最顶层的接口,是一个空的接口,目的是为了统一所有Repository的类型,且能让组件扫描的时候自动识别。

:是Repository的子接口,提供CRUD的功能

:是CrudRepository的子接口,添加分页和排序的功能

:是PagingAndSortingRepository的子接口,增加了一些实用的功能,比如:批量操3作等。

:用来做负责查询的接口

:是 提供的一个查询规范,要做复杂的查询,只需围绕这个规范来设置查询条件即可。

题外话:刚开始,其实我看 提供的都差不多,最让我觉得神奇的是:可以通过 进行相关数据库操作,这个确实可以减少很多代码的编写。原本使用 新增一个自定义方法,需要使用通用查询模版 进行相应的操作的

其中,相关命名规范如下:

这个确实,够强大!但查询添加一多,是不是这个方法名就也很长了,(┬_┬)

SpringBoot集成Spring-data-jpa

本示例,使用 + 进行演示。同时以 表举例:

题外话:虽然也提供了自动根据实体创建表的功能,但一般上开发应该不会这么创建吧。因为表结构一般都需要经过评审的,评审后就创建好了。。

0.引入pom依赖

1.编写 的实体类。

这里需要注意,在使用 时,在《Mybatis-Plus使用全解》时,介绍过可如何设置公共字段自动填充功能,比如创建时间和修改时间,创建人和修改人等等,都是可以统一进行赋值的。而在 中,是使用 和 标记的,同时,需要在实体类上,加入 ,然后在启动类上加入注解 ,这样就实现了类似公共字段自动填充功能了。

2.创建资源类,这里习惯了命名为 了,所以还是以 进行结尾。

注意:这里直接继承了 ,其本身实现了分页功能,还可以按需要继承 或者 等。而且,占位符为:+具体的参数索引值

3.创建控制层,引入资源类。示例了一些常用的操作,包括分页,查询、删除、新增等等。

4.配置文件添加相关数据源及jpa相关信息。这里使用 作为数据连接池。

5.编写启动类。

6.启动服务。然后使用 进行访问(关于 相关用法,可以查看:第十五章:基于Postman的RESTful接口测试)。

新增:http://127.0.0.1:8080/add

查找:http://127.0.0.1:8080/find/13

分页查找:http://127.0.0.1:8080/find/paging/okong

会返回相关信息,如总记录数,总页码数等等。

控制台输出:

自定义sql查找:http://127.0.0.1:8080/find/sql/okong

控制台输出:

参考资料

https://docs.spring.io/spring-data/data-jpa/docs/1.11.14.RELEASE/reference/html/

总结

本章节主要介绍了 的集成和简单的使用。并未深入了解,想了解更多细节,比如排序@Param使用等等,可去官网查阅下。待有机会深入学习后,再写一篇关于 的提高篇吧~使用起来其实也蛮简单的,就是可能更开始接触,不是很习惯到时真的,有机会一些小的项目或者demo项目,到时可以使用下,切身体验下~

最后

目前互联网上很多大佬都有 系列教程,如有雷同,请多多包涵了。原创不易,码字不易,还希望大家多多支持。若文中有所错误之处,还望提出,谢谢。

老生常谈

个人QQ:

微信公众号:

完整示例:https://github.com/xie19900123/spring-boot-learning/tree/master/chapter-30

系列

如果你觉得文章不错,欢迎点赞分享到朋友圈

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181031G0F7DA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券