70、Spring Data JPA 的 自定义查询(全手动,自己写完整 SQL 语句)

1、方法名关键字查询(全自动,既不需要提供sql语句,也不需要提供方法体)

2、@Query查询(半自动:提供 SQL 或 JPQL 查询)

3、自定义查询(全手动)

★ 自定义查询(全手动)

复制代码
------Spring Data什么都不干,所有查询方法的方法体完全由开发者来实现。

▲ 自定义查询方法的设计(编程步骤)

复制代码
(1) 让DAO组件接口额外继承一个自定义DAO接口
(2) 自定义DAO接口可以定义数据访问方法,
     再为该自定义DAO接口定义实现类、在该实现类中实现自定义的方法。

 Spring Data就能将自定义DAO接口的实现类中实现的查询方法"移植"给自己的DAO组件。

▲ 自定义查询方法的实现原理

复制代码
DAO组件的实现类由Spring Data使用动态代理来动态生成的,
因此DAO组件中所有查询方法的方法体都由Spring Data负责生成。

对于DAO接口中从父接口(自定义接口)中继承得到的方法,
Spring Data会直接用其父接口的实现类所实现的查询方法作为其实现。

代码演示

需求:实现一个全手动自己写sql的查询方法,根据学生名字和地址进行模糊查询

复制代码
步骤:
    (1) 让DAO组件接口额外继承一个自定义DAO接口
    (2) 自定义DAO接口可以定义数据访问方法,
          再为该自定义DAO接口定义实现类、在该实现类中实现自定义的方法。

1、让DAO组件接口额外继承一个自定义DAO接口

2、自定义DAO接口可以定义数据访问方法,再为该自定义DAO接口定义实现类、在该实现类中实现自定义的方法。

测试:

相关推荐
汉堡go4 小时前
python_chapter6
前端·数据库·python
范纹杉想快点毕业4 小时前
嵌入式工程师一年制深度进阶学习计划(纯技术深耕版)
linux·运维·服务器·c语言·数据库·算法
storyseek4 小时前
关于Milvus向量数据库的基础
数据库·milvus
步步为营DotNet4 小时前
深入探究.NET中Stream:灵活高效的数据流处理核心
服务器·数据库·.net
❀͜͡傀儡师4 小时前
基于提供的镜像构建PostGIS、pgvector 的 PostgreSQL 18镜像的Dockerfile
数据库·postgresql·postgis
消失的旧时光-19435 小时前
第五课:数据库不是存数据那么简单 —— MySQL 与索引的后端视角
数据库·mysql
nice_lcj5205 小时前
MySQL中GROUP_CONCAT函数详解 | 按日期分组拼接销售产品经典案例
数据库·mysql
key1s5 小时前
在 clickhouse时间降序排序解决方案
数据库
有梦想有行动5 小时前
ClickHouse的Partition和Part概念
linux·数据库·clickhouse
GZ_TOGOGO5 小时前
Oracle数据库考试适合哪些人
数据库·oracle·数据库开发·ocp认证·2026年it学习