快速学习Spring Data JPA -- 第二章JAP核心类Repository

xiaoxiao2025-11-11  7

xl_echo编辑整理,交流学习请加1280023003 百战不败,依不自称常胜,百败不颓,依能奋力前行。——这才是真正的堪称强大!!


在SpringDataJPA中最为核心的一个类就是Repository,他是SpringData里面最底层最抽象的接口,最顶级的父类,原码里面其方法都没有,仅仅起到一个标识作用。

我们可以通过IDEA了解一下该类,它的原码相对简单

// // Source code recreated from a .class file by IntelliJ IDEA // (powered by Fernflower decompiler) // package org.springframework.data.repository; import org.springframework.stereotype.Indexed; @Indexed public interface Repository<T, ID> { }

通过原码我们可以看到,其实它的操作主要不在于这个接口,而是在于继承它的子接口里面。现在用的最多的也就是JpaRepository,如果我们打开这类就可以发现,我们需要的基本的方法都可以在里面找到。

在这里我们可以借用idea的工具窗口type hierarchy(点击Navigate > 选中type hierarchy即可, 注意要在该类打开的情况下点击) 打开之后我们就可以明确的看到继承于它的子类关系图。

虽然我们的通过图发现这个接口并没有看到操作数据库的方法,但是这个继承这个接口能不能让我们操作数据库呢?虽然没有定义方法,但是它是JPA的核心类,而且他也遵循JPA编写方法的规则,能够有效的操作数据库。

JPA编写方法操作数据库只需要使用常用关键词按照sql的思路即可。 常用关键词如下:

1   And    并且2   Or     或3   Is,Equals    等于4   Between     两者之间5   LessThan      小于6   LessThanEqual   小于等于7   GreaterThan     大于8   GreaterThanEqual  大于等于9   After    之后(时间) >10  Before    之前(时间) <11  IsNull        等于Null12  IsNotNull,NotNull   不等于Null13  Like    模糊查询。查询件中需要自己加 %14  NotLike 不在模糊范围内。查询件中需要自己加 %15  StartingWith  以某开头16  EndingWith   以某结束17  Containing   包含某18  OrderBy  排序19  Not    不等于20  In     某范围内21  NotIn   某范围外22  True    真23  False    假24  IgnoreCase  忽略大小写

常用方法可以参考下图

我们也可以使用第一章的项目自己创建一个UserRepository来继承Repository然后自己定义几个方法来实际操作

package com.echo.example.example.repository; import com.echo.example.example.entity.User; import org.springframework.data.repository.Repository; import java.util.List; /** * author:XLecho * Date:2018/10/25 0025 * Time:22:26 */ public interface UserRepositoryExtendsRepository extends Repository<User, Long> { /** * 根据名称查询用户列表 * @param name * @return */ List<User> findByName(String name); /** * 根据id查询用户 * @param id * @return */ User findByIdAnd(Integer id); }

项目地址:https://git.coding.net/xlecho/SpringDataJpa.git

转载请注明原文地址: https://www.6miu.com/read-5039478.html

最新回复(0)