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

测试:

相关推荐
沃尔威武3 小时前
数据库 Sinks(.net8)
数据库·.net·webview
Dreamboat¿4 小时前
SQL 注入漏洞
数据库·sql
曹牧5 小时前
Oracle数据库中,将JSON字符串转换为多行数据
数据库·oracle·json
被摘下的星星5 小时前
MySQL count()函数的用法
数据库·mysql
末央&5 小时前
【天机论坛】项目环境搭建和数据库设计
java·数据库
徒 花5 小时前
数据库知识复习07
数据库·作业
素玥6 小时前
实训5 python连接mysql数据库
数据库·python·mysql
jnrjian6 小时前
text index 查看index column index定义 index 刷新频率 index视图
数据库·oracle
瀚高PG实验室6 小时前
审计策略修改
网络·数据库·瀚高数据库
言慢行善7 小时前
sqlserver模糊查询问题
java·数据库·sqlserver