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

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

大家好,又见面了。

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

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

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

借助IDEA提升效率

IDEA中直接连接数据源

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

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

Spring Data JPA系列5:让IDEA自动帮你写JPA实体定义代码
  1. 添加数据库连接,点击+号 -> Data Source -> MySQL,如果需要连接其他类型数据库,按需选择

Spring Data JPA系列5:让IDEA自动帮你写JPA实体定义代码
  1. 填写Host、User、Password、Database等连接信息,填好后点击OK

Spring Data JPA系列5:让IDEA自动帮你写JPA实体定义代码
  1. 连接完成,可以查看DB中数据,双击表名,可以查看表中数据内容

Spring Data JPA系列5:让IDEA自动帮你写JPA实体定义代码
  1. 点击打开Console窗口,可以输入SQL语句并执行

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

OK, Enjoy it…

IDEA自动生成实体对象

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

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

Spring Data JPA系列5:让IDEA自动帮你写JPA实体定义代码
  1. 打开的窗口中,点击Modules,点击右侧+号按钮,选择JPA菜单

Spring Data JPA系列5:让IDEA自动帮你写JPA实体定义代码
  1. 选中JPA选项,切换下面Default JPA provider为Hibernate,点击OK

Spring Data JPA系列5:让IDEA自动帮你写JPA实体定义代码
  1. IDEA窗口中多了个Persistence窗口,点击打开

Spring Data JPA系列5:让IDEA自动帮你写JPA实体定义代码
  1. 在Persistence窗口中选择项目名称,右键点击Generate Persistence Mapping -> By Database Schema

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

Spring Data JPA系列5:让IDEA自动帮你写JPA实体定义代码
  1. 等一会儿,对应Entity类就会生成到上一步中指定的位置了。

Spring Data JPA系列5:让IDEA自动帮你写JPA实体定义代码
  1. 后续再需要生成新的表对应实体类的时候,直接执行5~6两个步骤即可。

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

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

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

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

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

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

  • Erupt的架构图如下:

Spring Data JPA系列5:让IDEA自动帮你写JPA实体定义代码
  • Erupt界面效果如下:

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

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

小结

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

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

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

补充 Spring Data JPA作为 Spring Data中对于关系型数据库支持的一种框架技术,属于 ORM的一种,通过得当的使用,可以大大简化开发过程中对于数据操作的复杂度。
本文档隶属于《 Spring Data JPA用法与技能探究》系列的第5篇。本系列文档规划对 Spring Data JPA进行全方位的使用介绍,一共分为 5篇文档,如果感兴趣,欢迎关注交流。
《Spring Data JPA用法与技能探究》系列涵盖内容:

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

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

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

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

Original: https://www.cnblogs.com/softwarearch/p/16420274.html
Author: 架构悟道
Title: Spring Data JPA系列5:让IDEA自动帮你写JPA实体定义代码

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/584944/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 解决问题 Could not obtain transaction-synchronized Session for current thread

    解决问题 Could not obtain transaction-synchronized Session for current thread 问题现象 在使用Hibernat…

    Java 2023年5月30日
    083
  • Maven-打包jar指定main函数所在类的一个例子

    问题描述:maven打包jar时,由于带main方法的类没有被加入manifest中,导致执行java -jar mvn-jar-1.0-SNAPSHOT.jar时,会提示没有主清…

    Java 2023年6月8日
    078
  • 必知必会之Lambda表达式

    Java是一门强大的面向对象的语言,除了 8种基本的数据类型,其他一切皆为对象。因此,在 Java中定义函数或方法都离不开对象,也就意味着很难直接将方法或函数像参数一样传递,而 J…

    Java 2023年6月6日
    076
  • Java代码实现向企业微信用户发送消息

    java;gutter:true; 1. 其实就是一个HTTP请求,如下 请求方式:POST(HTTPS) 请求地址: https://qyapi.weixin.qq.com/cg…

    Java 2023年5月29日
    089
  • JVM垃圾回收阅读笔记

    Java内存运行时区域的各个部分, 其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭,栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。每一个栈帧中…

    Java 2023年6月7日
    069
  • 分布式学习基础知识

    新文章 分布式学习基础知识 网络通讯,网络是分布式的基础,对分布式的理解建立在对网络的理解上,包括: OSI模型的7层 TCP/IP,DNS,NAT HTTP,SPDY/HTTP2…

    Java 2023年6月7日
    071
  • 起飞,会了这4个 Intellij IDEA 调试魔法,阅读源码都简单了

    前言 上一篇文章 IntelliJ IDEA 高级调试之Stream Trace 算是 IntelliJ IDEA 高级调试技巧的开胃菜,小伙伴们被这个小技巧征服,趁热打铁,今天给…

    Java 2023年6月5日
    095
  • 【Java面试】什么是令牌桶限流算法

    当面试官问你,”什么是令牌桶限流算法”!你知道要怎么回答,才能获得面试官的青睐吗?大家好,我是Mic,一个工作了14年的Java程序员。关于这个问题,面试官…

    Java 2023年6月16日
    082
  • 【Q&A】Fixing NuGet.targets(131,5) error The local source doesn’t exist

    当出现类似的nuget错误的时候 The local source ‘C:\Program Files (x86)\Microsoft Visual Studio\Shared\N…

    Java 2023年6月8日
    061
  • MySQL查询之内连接,外连接查询场景的区别与不同

    前言 我在写 sql查询的时候,用的最多的就是 where条件查询,这种查询也叫内连查询 inner join,当然还有外连查询 outer join, 左&…

    Java 2023年6月13日
    075
  • SpringCloud(二):nacos作为配置中心

    访问nacos服务:http://localhost:8848/nacos/#默认账户、密码:nacos 1、创建namespace 2、在’配置管理’-》…

    Java 2023年5月30日
    099
  • 01第一章:01_RocketMQ概述

    一、MQ 简介 MQ,Message Queue,是一种提供 消息队列服务的中间件,也称为消息中间件,是一套提供了消息生产、存储、消费全过程 API 的软件系统。消息即数据。一般消…

    Java 2023年5月29日
    058
  • Redis高并发分布式锁详解

    为什么需要分布式锁 1.为了解决Java共享内存模型带来的线程安全问题,我们可以通过加锁来保证资源访问的单一,如JVM内置锁synchronized,类级别的锁ReentrantL…

    Java 2023年6月16日
    061
  • Java8之流Stream

    java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。 Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Ja…

    Java 2023年5月29日
    077
  • 【万字图文-原创】 | 学会Java中的线程池,这一篇也许就够了!

    碎碎念 关于JDK源码相关的文章这已经是第四篇了,原创不易,粉丝从几十人到昨天的 666人,真的很感谢之前帮我转发文章的一些朋友们。 从16年开始写技术文章,到现在博客园已经发表了…

    Java 2023年5月29日
    087
  • 猴子吃桃(递归)

    递归案例实践分析 猴子偷桃 题目描述: 猴子第一天摘下若干桃子,当即吃了一半,觉得好吃不过瘾,于是又多吃了一个,,第二天又吃了前天剩余桃子数量的一半,觉得好不过瘾,于是又多吃了一个…

    Java 2023年6月6日
    0133
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球