使用JPA自动生成代码(轻松上手看了就会版)
目录
- 背景:
- 方案
- 概念:
- JPA 的主要作用
- jpa简单使用(Springboot项目)
- jpa进阶使用
- 总结
背景:
项目需要自动生成sql代码,不需要写sql语句,能够自动进行查询,我想到了JPA。
方案
概念:
JPA 的全称是 Java Persistence API,是 Java EE 规范之一,用于定义 Java 对象与关系型数据库之间的映射关系。JPA 提供了一种简单的方式,让开发者可以通过面向对象的方式来操作数据库,而不需要手动编写 SQL 语句。
JPA 的主要作用
1、将 Java 对象映射到关系型数据库中的表格。
2、提供了一种统一的 API,可以让开发者以面向对象的方式来操作数据库,而不需要关心底层的数据库操作细节。
3、支持事务处理、缓存管理等高级功能。
4、提供了查询语言 JPQL,可以以面向对象的方式编写查询语句。
JPA 是 Java EE 规范的一部分,不是一个具体的实现。常见的 JPA 实现包括 Hibernate、EclipseLink、OpenJPA 等。在使用 JPA 进行开发时,可以选择一个符合自己需求的 JPA 实现,并按照 JPA 的规范进行开发。
jpa简单使用(Springboot项目)
@Repository
public interface ContentGrainDao extends JpaRepository<ContentGrain, Long> {}
@SpringBootApplication
public class PushClassApplication implements CommandLineRunner {@AutowiredContentGrainDao contentGrainRepository;@Autowiredprivate UserOrderRepository userOrderRepository;public static void main(String[] args) {SpringApplication.run(PushClassApplication.class,args);}@Overridepublic void run(String... args) throws Exception {//将断点打到这里List<ContentGrain> result = contentGrainRepository.findAll();System.out.println("222");
}
}
jpa进阶使用
//AcademyEntity 是要查表的实体,Long是这张表的主键类型
public interface TTAcademyDao extends JpaRepository<AcademyEntity, Long>
{AcademyEntity findByNameAndIsDelete(String name, int isDelete);
}
JPA 的命名规范是基于方法名称自动生成 SQL 查询语句,方法名称必须遵循一定的规范,以便自动生成正确的 SQL 语句。
根据 JPA 命名规范,findByNameAndIsDelete 这个方法名表示按照 name 和 isDelete 属性进行查询。具体解释如下:
find:表示这是一个查询方法。
By:表示按照某个属性进行查询。
Name:表示按照 name 属性进行查询。
And:表示并且关系,即同时满足两个条件。
IsDelete:表示按照 isDelete 属性进行查询。
根据这个方法名称,JPA 可以自动生成类似下面的 SQL 查询语句:
SELECT * FROM AcademyEntity WHERE name = ? AND is_delete = ?
这样就可以通过方法名称来实现简单的查询操作,而不需要手动编写 SQL 查询语句。需要注意的是,JPA 命名规范有一定的限制,不支持所有的查询语句,一些复杂的查询仍然需要手动编写 SQL 语句(个人认为没有必要,要是需要使用sql的话,就不用JPA了)。
总结
善假于物实现自动化~
相关文章:

使用JPA自动生成代码(轻松上手看了就会版)
目录 背景:方案概念:JPA 的主要作用 jpa简单使用(Springboot项目)jpa进阶使用总结 背景: 项目需要自动生成sql代码,不需要写sql语句,能够自动进行查询,我想到了JPA。 方案 概念&a…...
jdk动态代理
jdk动态代理:基于反射动态生成代理对象 pwp动态代理的步骤比较复杂,无需特别深入的理解,在jdk中固定的步骤,只需要知道这些步骤即可,不必钻牛角尖 动态代理涉及到的三个反射包类 InvocationHandlerMethodProxy 1. InvocationHand…...
备忘录模式
备忘录模式 备忘录模式定义使用场景1、撤销操作:2、游戏进度保存:3、定时器:4、浏览器历史记录:5、购物车状态保存:6、场景总结 角色定义Originator 发起人角色:Memento 备忘录角色:Caretaker 备忘灵管理员角色:需求背…...
问题解决:跨域访问错误
今天做前端页面渲染的时候遇到一个问题, 因为我使用的wsl开发,windows直接访问不了wsl中的文件,还要改其他配置没成功,索性就不改了,粘贴在桌面上用浏览器打开调试 然后所有使用apifox通过测试的路径全部报错 Ensure CORS response header values are validA cross-origin reso…...

程序员应该怎么自学才能入门 ?我来聊聊自己的经历
当你想成为一名程序员,如何自学入门是一个非常重要的问题。在这里我分享一下我的经验,希望能对你有所帮助。 首先,为了制定好你的学习路线,你可以在网上的培训机构网站找到一张基础路线图。这张路线图必须是跟行业对标的…...

听我一句劝,别去外包,干了6年,废了....
先说一下自己的情况,大专生,18年通过校招进入湖南某软件公司,干了接近6年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了6年的功能测试&…...
leetcode 88 合并两个有序数组
题目描述: 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终&am…...

软件项目成本控制的5大关键点 不得不重视
软件项目成本一般分为运营成本和项目成本。而运营成本比较固定,压缩和削减的余地不大。而在项目成本中,最主要的成本是人工成本。那么如何提高项目开发效率,节约人工成本,对成本管理至关重要。 我们从以下几个影响项目成本的主要因…...
CSS样式更改:边框Border的另类用法
CSS样式更改——字体设置Font&边框Border 随着互联网技术的不断发展,网页设计已经成为了一项非常重要的工作。在网页设计中,字体设置和边框Border是两个非常常见的CSS样式,可以通过这两个样式对网页的外观进行设置。下面,我们…...
shell的灵活运用 (函数,关联数组,循环,awk,sed等)
题目 提示:没有基础请先看看基础部分的讲解,否则看不懂 1,编写函数,实现判断是否无位置参数,如无参数,提示错误 代码: #bash/bin function a() {b$# #判断传入的参数个数 # echo $b…...

大疆无人机 MobileSDK(遥控器/手机端)开发 v4版<1>
大疆无人机飞控开发 大疆无人机SDK开发包功能概述飞行控制相机实时视频流传感器数据下载媒体文件遥控器,电池和无线链路连接应用程序和产品 v4版sdk 二次开发注册成为DJI开发者生成 App KeyAndroid 示例代码配置Android Studio项目集成创建一个新的应用配置Gradle 脚…...

mysql数据库之事务
1.事务的概念 事务是一种机制、一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一个 整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行。 事务是一个不可分割的工作逻辑单元…...
安装运行Hyperf
安装运行Hyperf 上回讲到,我们对一个普通的 Laravel 框架进行了改造,让它可以在 Swoole 环境下使用,不过其中会有很多问题可能我们一时考虑不到,就会造成程序的稳定性出现问题。那么,今天我们就来学习一个原生的 Swoo…...

回收站文件恢复,分享4个巧妙解决方法!
案例:回收站文件怎么恢复 【清理电脑时一不小心清空了我的回收站,有朋友知道该怎么恢复吗?急急急!】 回收站对于电脑用户来说,可以带来很多的方便,能让用户能够在删除文件后将其恢复。但是,有…...

CTF权威指南 笔记 -第三章汇编基础-3.2-x86/x64汇编基础
这节介绍PC最常见的架构 x86和扩展 x64框架 CPU操作模式 对x86处理器而言 有三个最主要的保护模式 保护模式 实地址模式 系统管理模式还有一个保护模式的子模式 虚拟8086模式 保护模式 保护模式是处理原生状态 这个时候所有指令和特性都是可以使用的 分配给程序的独立内…...
争夺汽车芯片「高地」
一直以来,汽车芯片无论是工艺制程,还是新技术的导入,都要落后消费类产品几年时间。不过,如今,随着汽车智能化进一步推动汽车制造商与上游芯片设计公司、晶圆代工厂的紧密互动,历史即将翻篇。 同时…...

SuperMap GIS基础产品三维GIS FAQ集锦(2)
SuperMap GIS基础产品三维GIS FAQ集锦(2) 【WebGL】桌面对三维缓存设置了最大最小可见高度,在iServer发布三维服务并进行预览是可以看到该效果的,但在前端代码打开该服务,最大最小可见高度效果丢失,请问怎…...

11.streamFile
1.Stream流 1.1体验Stream流【理解】 案例需求 按照下面的要求完成集合的创建和遍历 创建一个集合,存储多个字符串元素把集合中所有以"张"开头的元素存储到一个新的集合把"张"开头的集合中的长度为3的元素存储到一个新的集合遍历上一步得到的集…...

如何裁剪图片大小尺寸?
如何裁剪图片大小尺寸?平时我们在工作或者学习的时候,会经常需要将图片上传到不同的网站或者平台上,然而上传的时候经常会受到尺寸的限制,有时候尺寸太大就需要变小,为了确保上传成功,我们需要将图片进行裁…...

深度学习笔记之梯度下降、反向传播与内置优化器
文章目录 1. 梯度下降法2. 反向传播算法3. PyTorch内置的优化器3.1 SGD优化器3.2 RMSprop优化器3.3 Adam优化器 1. 梯度下降法 笔者往期的机器学习笔记: 机器学习之梯度下降算法 梯度下降法是一种致力于找到函数极值点的算法。 所谓“训练”或“学习”就是改进…...

【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...

C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...

【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...

Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...