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接口定义实现类、在该实现类中实现自定义的方法。

测试:

相关推荐
Ai 编码助手3 分钟前
MySQL中distinct与group by之间的性能进行比较
数据库·mysql
陈燚_重生之又为程序员18 分钟前
基于梧桐数据库的实时数据分析解决方案
数据库·数据挖掘·数据分析
caridle20 分钟前
教程:使用 InterBase Express 访问数据库(五):TIBTransaction
java·数据库·express
白云如幻21 分钟前
MySQL排序查询
数据库·mysql
萧鼎23 分钟前
Python并发编程库:Asyncio的异步编程实战
开发语言·数据库·python·异步
^velpro^25 分钟前
数据库连接池的创建
java·开发语言·数据库
荒川之神30 分钟前
ORACLE _11G_R2_ASM 常用命令
数据库·oracle
IT培训中心-竺老师36 分钟前
Oracle 23AI创建示例库
数据库·oracle
小白学大数据1 小时前
JavaScript重定向对网络爬虫的影响及处理
开发语言·javascript·数据库·爬虫