Spring Data JPA系列5:让IDEA自动帮你写JPA实体定义代码

article/2023/6/3 16:00:54

大家好,又见面了。

这是本系列的最后一篇文档啦,先来回顾下前面4篇:

  • 在第1篇《Spring Data JPA系列1:JDBC、ORM、JPA、Spring Data JPA,傻傻分不清楚?给你个选择SpringDataJPA的理由!》中,我们对JPA的整体概念有了全面的了解。

  • 在第2篇《Spring Data JPA系列2:快速在SpringBoot项目中熟练使用JPA》中也知晓了SpringBoot项目快速集成SpringData JPA以及快速上手使用JPA来进行基本的项目开发的技能。

  • 在第3篇《Spring Data JPA系列3:JPA项目中核心场景与进阶用法介绍》进一步的聊一下项目中使用JPA的一些高阶复杂场景的实践指导,覆盖了主要核心的JPA使用场景。

  • 在第4篇《Spring Data JPA系列4:Spring声明式事务处理与多数据源支持》我们对数据库事务处理方式以及可能存在的问题等进行了全面的探讨。

通过前面的系列文档,我们一起对SpringData JPA从浅入深的进行了全方位的探讨。正所谓“工欲善其事、必先利其器”,面对一个优秀的框架,如果再结合一些外部的工具,其实可以让我们的开发效率与程序员开发过程的体验更上一层楼的。

本篇内容,我们就一起来聊一聊这方面。

借助IDEA提升效率

IDEA中直接连接数据源

项目开发的时候,经常需要一边写代码一边看下数据库表数据或者字段,需要在IDEA和数据库客户端之间来回切换,很麻烦。其实,IDEA中可以直接连接数据库,直接在IDEA中查看和执行数据库操作,更加的方便快捷。

  1. 打开View -> Tool Windows -> Database窗口

  1. 添加数据库连接,点击+号 -> Data Source -> MySQL,如果需要连接其他类型数据库,按需选择

  1. 填写Host、User、Password、Database等连接信息,填好后点击OK

  1. 连接完成,可以查看DB中数据,双击表名,可以查看表中数据内容

  1. 点击打开Console窗口,可以输入SQL语句并执行

OK, Enjoy it...

IDEA自动生成实体对象

数据表定义好了,手动逐个写对应的映射实体Entity,还是很繁琐?教你让IDEA自动给你生成Entity实体类!

  1. 打开IDEA,点击File -> Project Structure菜单

  1. 打开的窗口中,点击Modules,点击右侧+号按钮,选择JPA菜单

  1. 选中JPA选项,切换下面Default JPA provider为Hibernate,点击OK

  1. IDEA窗口中多了个Persistence窗口,点击打开

  1. 在Persistence窗口中选择项目名称,右键点击Generate Persistence Mapping -> By Database Schema

  1. 弹窗中,选择一个数据源(上一章节中讲解的方式配置IDEA与DB的连接),选择代码生成到的代码目标package位置,设定代码生成类名命名规则(prefix或者suffix),然后勾选需要生成对应代码实体的表,勾选左下角Generate JPA Annotations选项,点击OK

  1. 等一会儿,对应Entity类就会生成到上一步中指定的位置了。

  1. 后续再需要生成新的表对应实体类的时候,直接执行5~6两个步骤即可。

后端也想写出完美界面?必须安排!

不知道大家有没有过这种经历:

  • 作为一名后端程序员,往往有一个很好的idea,想自己开发个小系统或者小项目,但苦于自己只能写后端服务,没法配上一个美美的web界面。花了点时间学了下Vue或者React等前端脚手架之后,勉强写出来的界面又丑又难用,而且同时维护前后端太耗费精力,最后很多优秀的idea都消失在岁月的洪流中。
  • 小型团队,人力有限,没有配齐前后端人员,让后端人员开发蹩脚前端portal,导致整体体验感较差
  • ...

这里开源项目Erupt就要登场了,可以完美解决上述问题,堪称后端程序员的福音。

为什么在SpringData JPA相关教程中提到这个问题呢?因为Erupt的实现思路与JPA ORM的思路非常相似,对于SpringData JPA做数据处理的项目而言,可以非常简单的几个操作就对接到Erupt上!

详细了解的话,可以去开源项目地址了解下,点此了解

  • Erupt的架构图如下:

  • Erupt界面效果如下:

小结

好啦,本篇内容就介绍到这里。

至此,本系列的教程就全部结束啦。通过本系列的几篇文档,为大家由浅入深的对JPA进行了全面的探讨,希望能够让大家对SpringData JPA的学习与使用有一定的帮助。也祝愿大家能够在实际项目中,感受到JPA给我们开发过程带来的便捷。

如果对本文有自己的见解,或者有任何的疑问或建议,都可以留言,我们一起探讨、共同进步。


补充

Spring Data JPA作为Spring Data中对于关系型数据库支持的一种框架技术,属于ORM的一种,通过得当的使用,可以大大简化开发过程中对于数据操作的复杂度。

本文档隶属于《Spring Data JPA用法与技能探究》系列的第5篇。本系列文档规划对Spring Data JPA进行全方位的使用介绍,一共分为5篇文档,如果感兴趣,欢迎关注交流。

《Spring Data JPA用法与技能探究》系列涵盖内容:

  • 开篇介绍 —— 《Spring Data JPA系列1:JDBC、ORM、JPA、Spring Data JPA,傻傻分不清楚?给你个选择SpringDataJPA的理由!》
  • 快速上手 —— 《Spring Data JPA系列2:SpringBoot集成JPA详细教程,快速在项目中熟练使用JPA》
  • 深度进阶 —— 《Spring Data JPA系列3:JPA项目中核心场景与进阶用法介绍》
  • 可靠保障 —— 《Spring Data JPA系列4:Spring声明式事务处理与多数据源支持》
  • 周边扩展 —— 《Spring Data JPA系列5:让IDEA自动帮你写JPA实体定义代码》

我是悟道,聊技术、又不仅仅聊技术~

如果觉得有用,请点个关注,也可以关注下我的公众号【架构悟道】,获取更及时的更新。

期待与你一起探讨,一起成长为更好的自己。

http://www.ngui.cc/article/show-458852.html

相关文章

如何制作精美的图片

当我们在日常浏览视频网站、查看公众号文章时,精美的图片封面往往更容易吸引我们去点击。像我们的技术类文章如果能在文中穿插一些有意思、简明扼要或有动感的图片,就看起来特别的有层次感。一、什么样的图片适合我们 支持CC0免费商用协议的图片,是没有版权风险的,当然我们…

PotPlayer播放百度云盘视频

需要的工具 PotPlayer、油猴tampermonkey、坚果(这个不用下载,有个账号就行) 下载地址:百度网盘 步骤 安装油猴tampermonkey拖拽Tampermonkey_4.14.crx过程chrome浏览器上,如果提示安装失败,则在扩展程序中打开开发者模式安装PotPlayer云盘脚本复制PotPlayer播放云盘视频的…

FS2K人脸素描属性识别

根据FS2K数据集,利用VGG16,DenseNet,ResNet进行训练和测试,实现输入一张图片(简笔画和普通照片),输出该图片的属性特征信息人脸素描属性识别 代码:https://github.com/linkcao/FS2K_extract 问题分析需要根据FS2K数据集进行训练和测试,实现输入一张图片,输出该图片的属…

从Hadder看蛋白质分子中的加氢算法

本文主要介绍了开源加氢软件Hadder中用到的一些常规的补氢算法。在存储和优化蛋白质结构的过程中,人们更多的关注于蛋白质本身的骨架的变化,而单个原子的细微变化,对整体产生的性质是微乎其微的。但是我们在建立力场以及做能量最小化的过程中,需要用到氢原子。而氢原子的初…

CODING DevOps 助力中化信息打造新一代研效平台,驱动“线上中化”新未来

中化信息技术有限公司,简称“中化信息”,是世界 500 强企业中国中化控股有限责任公司(简称“中国中化”)的全资直属公司,依托于中国中化的信息化建设实践,建立起从咨询、设计到研发、交付及运维的服务价值链,形成涵盖生命科学、材料科学、基础化工、环境科学、轮胎橡胶、…

使用Karmada实现Helm应用的跨集群部署

摘要:借助Karmada原生API的支持能力,Karmada可以借助Flux轻松实现Helm应用的跨集群部署。 本文分享自华为云社区《 使用Karmada实现Helm应用的跨集群部署【云原生开源】》,作者:华为云云原生开源团队。 背景 通过使用 Kubernetes 原生 API 并提供高级调度功能,Karmada已经…

论文解读(GCC)《Efficient Graph Convolution for Joint Node RepresentationLearning and Clustering》

论文信息论文标题:Efficient Graph Convolution for Joint Node RepresentationLearning and Clustering论文作者:Chakib Fettal, Lazhar Labiod,Mohamed Nadif论文来源:2021, WSDM论文地址:download 论文代码:download1 Introduction一个统一的框架中解决了节点嵌入和聚类…

抽奖动画 - 鲤鱼跳龙门

pageClass: home-page-class 鲤鱼跳龙门动画 1. 需求 年中618营销活动要求做一个鲤鱼跳龙门的动画,产品参考了支付宝上的一个动画,要求模仿这个来做一个类似的动画。产品提供的截屏视频如下:图1 从这个视频里得到的信息,我们可以把动画分解一下:321倒计时结束,动画开始播…

ConcurrentHashMap深入剖析(基于JDK1.7)

最近有点时间,翻了翻ConcurrentHashMap的源码学习了一下,对我自己认为比较重要的一些方法进行了学习,添加了一些必要的注释,拿出来与园子的小伙伴分享一下,有说的不对的地方,还请各位批评指正,欢迎交流。话不多说,上源码:package cn.com.wwh.concurrent;import java.u…

3. Caller 服务调用 - dapr

前言 上一篇我们讲了使用HttpClient的方式调用,那么如果我们现在需要更换为通过dapr实现服务调用,我们需要做哪些事情呢? Caller.Dapr 入门 如果我们的项目原本使用的是Caller.HttpClient,现在希望改为使用Caller.Dapr,那么我们需要做什么呢?改造Caller 服务调用 - HttpC…