【Tools】管理JPA数据模型的最先进的IntelliJ插件:JPA Buddy

article/2025/9/18 12:06:46

目录

  • 说明
  • 基础操作
  • JPA Buddy
  • EasyCode

说明

  • 使用IDEA版本为 2022.2.1。由于IDEA版本或插件版本的不同,操作界面可能略有不同。
  • 了解了JPA Buddy和EasyCode,个人更倾向于JPA Buddy,功能更强大,操作简单。

JPA Buddy通过以下方式简化了开发过程:

  1. 引入丰富的代码生成功能
  • 数据模型
  • 数据接口
  • 数据库迁移(Liquibase, Flyway)
  • 逆向工程
  1. 集成智能检查
  2. 通过以数据为中心的项目视图提供更好的导航
  3. 提供全面的编码辅助功能

基础操作

1.创建Maven项目
在这里插入图片描述
2.导入依赖

 	<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.0</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--JPA  使用idea JPA插件--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency></dependencies>

3.安装插件

  • JPA Buddy
    在这里插入图片描述

4.创建启动类App.class

package com.lingfei;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class App {public static void main(String[] args) {SpringApplication.run(App.class, args);}
}

5.创建配置文件application.yml

server:port: 10001spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/jpa_easycode?useUnicode=true&characterEncoding=utf-8username: rootpassword: xxx

6.创建测试Controller

package com.lingfei.controller;import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/user")
public class UserController {@GetMapping("/test")private ResponseEntity test(){return ResponseEntity.ok("hello");}
}

测试接口 http://localhost:10001/user/test
在这里插入图片描述

7.IDEA连接数据库
在这里插入图片描述
在这里插入图片描述

JPA Buddy

jpa buddy官网对jpa buddy做了详细的说明,感兴趣的可以去学习。
JPA Buddy是一个免费的IntelliJ插件,有一些功能是付费版。
JPA Buddy为新开发人员提供了一个简单的开始,并为更有经验的开发人员加速了开发过程。它还指导两种类型的开发人员遵循使用JPA的最佳实践。使用可视化设计器和丰富的代码生成功能,让使用Hibernate、EclipseLink、Spring Data JPA、MapStruct、Lombok、Liquibase和Flyway更容易。

JPA Buddy:管理JPA数据模型的最先进的IntelliJ插件

  • 快速创建JPA实体和数据相关对象
  • 轻松管理数据库迁移
  • 从数据库中的现有表生成实体
  • 确保代码在运行时不会失败

1.配置文件加入jpa配置

server:port: 10001spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/jpa_easycode?useUnicode=true&characterEncoding=utf-8username: rootpassword: xiejijpa:show-sql: true # 显示sql查询hibernate:ddl-auto: update #如果不存在,就新建,如果存在只更新

2.创建JPA entity
在这里插入图片描述
在这里插入图片描述

以下可略😊

默认User只有一个id属性,打开User.java,选择JPA Buddy工具栏,可以在上面操作添加新的属性,或者直接自己coding
在这里插入图片描述
双击Baseic Type 添加属性名:
在这里插入图片描述
索引管理:
在这里插入图片描述
在这里插入图片描述
重写equals()、hashCode()、toString()方法:
在这里插入图片描述
lombok支持:
在这里插入图片描述
在这里插入图片描述

package com.lingfei.model;import lombok.Data;
import org.hibernate.Hibernate;import javax.persistence.*;
import java.util.Objects;@Data
@Entity
@Table(name = "user")
public class User {@Id@GeneratedValue(strategy = GenerationType.AUTO)@Column(name = "id", nullable = false)private Long id;private String name;private String phone;private Integer age;@Column(name = "address")private String address;@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) return false;User user = (User) o;return id != null && Objects.equals(id, user.id);}@Overridepublic int hashCode() {return getClass().hashCode();}
}

通过启动类启动项目,成功启动,自动生成数据库表:
在这里插入图片描述

3.创建接口Repository,操作数据库

右击User,new 选择 Spring Data Reposiyory
在这里插入图片描述
输入接口名称,选择路径
在这里插入图片描述
自动生成UserRepository接口

package com.lingfei.dao;import com.lingfei.model.User;
import org.springframework.data.jpa.repository.JpaRepository;public interface UserRepository extends JpaRepository<User, Long> {
}

4.动态生成Repository接口方法

选中User某一属性,右击Show Context Actions或直接alt+enter
在这里插入图片描述
在这里插入图片描述
以Method和以Query开头的方法生成方式,如选择Method Find Instance在这里插入图片描述
该方法配置工具栏,可以设置多种条件,具体可操作查看:
在这里插入图片描述
点击OK,在刚刚生成的接口中自动添加了 User findByNameIgnoreCase(String name); 方法
在这里插入图片描述

5.新增测试接口testGetAll、getInstance, 测试UserRepository

package com.lingfei.controller;import com.lingfei.dao.UserRepository;
import com.lingfei.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserRepository userRepository;@GetMapping("/testGetAll")private ResponseEntity testGetAll() {List<User> all = userRepository.findAll();return ResponseEntity.ok(all);}@GetMapping("/getInstance/{name}")private ResponseEntity getInstance(@PathVariable("name") String name) {User user = userRepository.findByNameIgnoreCase(name);return ResponseEntity.ok(user);}
}

在这里插入图片描述
在这里插入图片描述

EasyCode

  • 插件安装
    在这里插入图片描述

选中对应数据库表,右击选中EasyCode,点击Generate Code
在这里插入图片描述
选择代码文件生成路径,选择模板类型,此处选择了MybatisPlus,勾选所有,OK
在这里插入图片描述
生成文件:
在这里插入图片描述
相对较JPA,还是更加倾向JPA。


http://chatgpt.dhexx.cn/article/jkI08Yfl.shtml

相关文章

JPA和Spring-Data-JPA简介

什么是JPA JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。它的出现主要是为了简化现有的持久化开发工作和整合ORM技术 ORM&#xff1a;通过使用描述对象和数据库之间映射的元数据&#x…

SpringBoot 一文搞懂Spring JPA

一文搞懂Spring JPA 什么是 JPA spirng data jpa是spring提供的一套简化JPA开发的框架&#xff0c;按照约定好的【方法命名规则】写dao层接口&#xff0c;就可以在不写接口实现的情况下&#xff0c;实现对数据库的访问和操作。同时提供了很多除了CRUD之外的功能&#xff0c;如…

JPA基础知识----JPA 基本注解,JPA API

JPA 是什么 Java Persistence API&#xff1a;用于对象持久化的 API Java EE 5.0 平台标准的 ORM 规范&#xff0c;使得应用程序以统一的方式访问持久层 JPA和Hibernate的关系 JPA 是 hibernate 的一个抽象&#xff08;就像JDBC和JDBC驱动的关系&#xff09;&…

java jpa是什么_什么是JPA?

JDBC jdbc是一组规范&#xff0c;是接口&#xff0c;由不同的数据库厂商各自提供相应的实现类&#xff0c;打包成jar包&#xff0c;也就是所谓的数据库驱动。而我们的java应用程序&#xff0c;只需要调用jdbc的接口就可以了。 而JPA是和jdbc类似的东西 什么是JPA Java Persiste…

JPA与Mybatis的区别

其实JPA和mybatis大体上没什么区别&#xff0c;架构上很相似&#xff0c;mybatis就是mapper层&#xff0c;JPA就是repository层&#xff0c;其他都一样的 JPA就是把mapper层的接口换成repository的接口: 那么接口具体长什么样呢&#xff1f; mapper层 自己写sql语句 JPA的re…

什么是JPA?Java持续性介绍

新钛云服已累计为您分享723篇技术干货 本文将了解基于 Hibernate 的 Java 持久化标准&#xff0c;学习如何使用 JPA 在关系数据库或 NoSQL 数据库中存储和管理 Java 对象。 作为一种规范&#xff0c;Jakarta Persistence API&#xff08;以前称为 Java Persistence API&#xf…

spring boot 中使用 jpa以及jpa介绍

最近在项目中使用了一下jpa&#xff0c;发现还是挺好用的。这里就来讲一下jpa以及在spring boot中的使用。 在这里我们先来了解一下jpa。 1.什么是jpa呢&#xff1f; JPA顾名思义就是Java Persistence API的意思&#xff0c;是JDK 5.0注解或XML描述对象&#xff0d;关系表的…

JPA是什么

JPA仅仅是一种规范&#xff0c;也就是说JPA仅仅定义了一些接口&#xff0c;而接口是需要实现才能工作的。所以底层需要某种实现&#xff0c;而Hibernate就是实现了JPA接口的ORM框架。 也就是说&#xff1a; JPA是一套ORM规范&#xff0c;Hibernate实现了JPA规范&#xff01;如…

数据中台(一)数据中台详解

1.数据中台的由来 数据库阶段 ---> 传统数仓 ---> 大数据平台 ----> 大数据中台 1.1.数据存储起源&#xff1a;数据库 1979年&#xff1a;Oracle1.0商用数据库发布 1996年&#xff1a;MySQL1.0发布&#xff0c;到2000年以后开始火起来。 特点&#xff1a;数据库主要面…

通俗易懂解释什么是“中台”

通俗易懂解释什么是“中台” 随着互联网公司崛起&#xff0c;“中台”这个词也进入了人们的视线。BAT 等公司纷纷推出了自己的中台系统。那么&#xff0c;什么是中台系统&#xff1f;它是如何诞生的&#xff1f;它长什么模样&#xff1f;我们为什么需要它&#xff1f;一串串的问…

什么是中台

什么是中台&#xff1f; 前台 由各类前台系统组成的前端平台。每个前台系统就是一个用户触点&#xff0c;即企业的最终用户直接使用或交互的系统&#xff0c;是企业与最终用户的交点。列如用户直接使用的网站&#xff0c;手机APP&#xff0c;微信公众号都属于前台范畴。 中台&…

什么是“中台”?

“中台”这个概念&#xff0c;越来越多的在各种技术大会上提及&#xff0c;各大技术公司&#xff0c;纷纷推出自己的“中台”方案&#xff0c;究竟什么是“中台”&#xff1f;他和“前台”、“后台”有何区别&#xff1f; 《》&#xff0c;这是我的朋友、前同事小灰写的一篇漫画…

中台架构

中台是什么 企业互联网中台架构&#xff0c;简称中台&#xff0c;起源于阿里巴巴&#xff0c;不同的人对中台有不同解读。 我认为&#xff0c;中台可定义为&#xff1a;中台是一套结合互联网技术和行业特性&#xff0c;将企业核心能力以共享服务中心进行沉淀&#xff0c;形成“…

数据中台架构体系理解

目前&#xff0c;大部分企业更倾向于数据集中采集、存储&#xff0c;并应用分层建设。这种方式一方面有利于应用系统的快速部署&#xff0c;另一方面也保证了数据的集中管理与运营&#xff0c;体现数据的资产、资源属性。 数据中台的出现弥补了数据开发和应用开发之间由于开发…

业务中台和数据中台的区别

中台里面有两个很重要的中台&#xff0c;一个是业务中台&#xff0c;一个是数据中台。 业务中台是提供可复用的业务&#xff0c;API数据中台是提供数据洞察和智能的。 不管什么中台&#xff0c;它实际上都是平台思想的一个体现&#xff0c;一种具象。 二者的联系 数据中台从业…

数据中台详解

文章目录 什么是数据中台数据中台 VS 数据仓库数据中台的业务价值与技术价值 数据中台建设与架构数据中台建设方法论数据中台架构 数据汇聚联通&#xff1a;打破企业数据孤岛数据采集、汇聚的方法和工具数据交换 数据体系建设数据体系规划统一数仓层建设——标准化的数据底座相…

数据中台(七) 数据中台架构

总体架构图 数据存储 计算引擎 数据汇聚 数据汇聚是把数据资源通过实时、批量的方式存储到数据中台。基本是按照数据的原始状态堆砌在一起的&#xff0c;是企业对过往所有IT信息化建设积累的成果的融合。 数据开发 数据开发是数据资产内容建设的主战场&#xff0c;是数据价值…

什么是中台?

文章目录 中台——为前台而生一、没有中台的时代——传统项目二、中台的出现背景&#xff08;1&#xff09;国外&#xff08;最先&#xff09;&#xff08;2&#xff09;国内&#xff08;部分&#xff09;A. 阿里巴巴B. 华为 三、什么是中台四、为什么要做中台五、前中后台三者…

详解什么是中台?

什么是中台 最近被老板折腾得够呛&#xff0c;我们老板听说最近中台的概念很火&#xff0c;让我们调研公司实习中台战略的可行性。刚开始并不理解什么是中台… 因此&#xff0c;写篇博客先简单介绍下什么是中台。 要理解中台&#xff0c;要先清楚传统项目架构的痛点在哪里 没有…

传统系统架构与中台架构的区别和联系

SOA架构思想 我们可以来看下SOA本身的定义&#xff0c;即&#xff1a; SOA是一种架构方法&#xff0c;将传统的单片式应用打破&#xff0c;分解为离散的、自治的业务服务&#xff0c;利用标准提升他们的互操作性&#xff0c;从而可以更好地共享、重用和组装&#xff0c;快速构…