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

测试:

相关推荐
星空下的曙光18 分钟前
mysql 命令语法操作篇 数据库约束有哪些 怎么使用
数据库·mysql
小楓120121 分钟前
MySQL數據庫開發教學(一) 基本架構
数据库·后端·mysql
染落林间色28 分钟前
达梦数据库-实时主备集群部署详解(附图文)手工搭建一主一备数据守护集群DW
数据库·sql
颜颜yan_1 小时前
企业级时序数据库选型指南:从传统架构向智能时序数据管理的转型之路
数据库·架构·时序数据库
lichenyang4531 小时前
管理项目服务器连接数据库
数据库·后端
沙振宇1 小时前
【数据库】通过‌phpMyAdmin‌管理Mysql数据
数据库·mysql
杨云龙UP2 小时前
CentOS Linux 7 (Core)上部署Oracle 11g、19C RAC详细图文教程
数据库·oracle
ezl1fe2 小时前
RAG 每日一技(十八):手写SQL-RAG太累?LangChain的SQL智能体(Agent)前来救驾!
数据库·人工智能·后端
小咖张2 小时前
spring声明式事务,finally 中return对事务回滚的影响
数据库·java 声明式事务
JSON_L2 小时前
MySQL 加锁与解锁函数
数据库·mysql