1 方法签名
方法签名由动词+主题+关键词+断言+限制条件组成。
package com.dao;
import com.entity.UserEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* 用户Dao层
*/
@Repository
public interface UserRepository extends JpaRepository<UserEntity, String>, JpaSpecificationExecutor<UserEntity> {
/**
* 根据用户名和密码获取用户信息
*
* @param username 用户名
* @param password 密码
* @return
*/
List<UserEntity> getUserEntityListByUsernameAndPassword(String username, String password);
}
2 动词
2.1 查询数据
2.1.1 get
用于查询数据。
/**
* 根据用户名获取用户信息
*
* @param username 用户名
* @return
*/
List<UserEntity> getUserEntityListByUsername(String username);
2.1.2 find
用于查询数据。
/**
* 根据用户名获取用户信息
*
* @param username 用户名
* @return
*/
List<UserEntity> findUserEntityListByUsername(String username);
2.1.3 read
用于查询数据。
/**
* 根据用户名获取用户信息
*
* @param username 用户名
* @return
*/
List<UserEntity> readUserEntityListByUsername(String username);
2.2 查询数据数量
2.2.1 count
用于查询数据数量。
/**
* 根据用户名获取用户信息数量
*
* @param username 用户名
* @return
*/
int countByUsername(String username);
3 主题
主题一般为实体类名称,也可以省略。
/**
* 根据用户名获取用户信息
*
* @param username 用户名
* @return
*/
List<UserEntity> findUserEntityListByUsername(String username);
UserEntityList为主题。
4 关键字
4.1 By
主要起到连接主题和断言的作用。
/**
* 根据用户名获取用户信息
*
* @param username 用户名
* @return
*/
List<UserEntity> findUserEntityListByUsername(String username);
5 断言
断言为实体类属性名称。
/**
* 根据用户名获取用户信息
*
* @param username 用户名
* @return
*/
List<UserEntity> findUserEntityListByUsername(String username);
Username为断言。
6 限制条件
6.1 逻辑判断
6.1.1 And
逻辑与判断。
/**
* 根据用户名和密码获取用户信息
*
* @param username 用户名
* @param password 密码
* @return
*/
List<UserEntity> getUserEntityListByUsernameAndPassword(String username, String password);
6.1.2 Or
逻辑或判断。
/**
* 根据用户名或密码获取用户信息
*
* @param username 用户名
* @param password 密码
* @return
*/
List<UserEntity> getUserEntityListByUsernameOrPassword(String username, String password);
6.2 相等判断
6.2.1 Is
相等判断。
/**
* 根据用户名获取用户信息
*
* @param username 用户名
* @return
*/
List<UserEntity> getUserEntityListByUsernameIs(String username);
6.2.2 Equals
相等判断。
/**
* 根据用户名获取用户信息
*
* @param username 用户名
* @return
*/
List<UserEntity> getUserEntityListByUsernameEquals(String username);
6.2.3 Not
不相等判断。
/**
* 获取不为指定用户名的用户信息
*
* @param username 用户名
* @return
*/
List<UserEntity> getUserEntityListByUsernameNot(String username);
6.2.4 IgnoreCase
等于指定条件,并且忽略大小写。
/**
* 获取用户名为指定用户名的用户信息(忽略大小写)
*
* @param username 用户名
* @return
*/
List<UserEntity> getUserEntityListByUsernameIgnoreCase(String username);
6.3 范围判断
6.3.1 Between
位于两个条件之间。
/**
* 获取用户名为指定两个用户名之间的用户信息
*
* @param username1 用户名
* @param username2 用户名
* @return
*/
List<UserEntity> getUserEntityListByUsernameBetween(String username1, String username2);
6.3.2 LessThan
小于指定条件。
/**
* 获取用户名为小于指定用户名的用户信息
*
* @param username 用户名
* @return
*/
List<UserEntity> getUserEntityListByUsernameLessThan(String username);
6.3.3 LessThanEqual
小于等于指定条件。
/**
* 获取用户名为小于等于指定用户名的用户信息
*
* @param username 用户名
* @return
*/
List<UserEntity> getUserEntityListByUsernameLessThanEqual(String username);
6.3.4 GreaterThan
大于指定条件。
/**
* 获取用户名为大于指定用户名的用户信息
*
* @param username 用户名
* @return
*/
List<UserEntity> getUserEntityListByUsernameGreaterThan(String username);
6.3.5 GreaterThanEqual
大于等于指定条件。
/**
* 获取用户名为大于等于指定用户名的用户信息
*
* @param username 用户名
* @return
*/
List<UserEntity> getUserEntityListByUsernameGreaterThanEqual(String username);
6.3.6 After
大于指定条件。
/**
* 获取用户名为大于指定用户名的用户信息
*
* @param username 用户名
* @return
*/
List<UserEntity> getUserEntityListByUsernameAfter(String username);
6.3.7 Before
小于指定条件。
/**
* 获取用户名为小于指定用户名的用户信息
*
* @param username 用户名
* @return
*/
List<UserEntity> getUserEntityListByUsernameBefore(String username);
6.4 非空判断
6.4.1 IsNull
指定字段为null。
/**
* 获取性别为null的用户信息
*
* @return
*/
List<UserEntity> getUserEntityListBySexIsNull();
6.4.2 IsNotNull
指定字段不为null。
/**
* 获取性别不为null的用户信息
*
* @return
*/
List<UserEntity> getUserEntityListBySexIsNotNull();
6.4.3 NotNull
指定字段不为null。
/**
* 获取性别不为null的用户信息
*
* @return
*/
List<UserEntity> getUserEntityListBySexNotNull();
6.5 模糊匹配
6.5.1 Like
等于指定条件。
/**
* 获取用户名为指定用户名的用户信息
*
* @param username 用户名
* @return
*/
List<UserEntity> getUserEntityListByUsernameLike(String username);
6.5.2 NotLike
不等于指定条件。
/**
* 获取用户名为不为指定用户名的用户信息
*
* @param username 用户名
* @return
*/
List<UserEntity> getUserEntityListByUsernameNotLike(String username);
6.5.3 StartingWith
以指定条件开头。
/**
* 获取用户名为指定用户名开头的用户信息
*
* @param username 用户名
* @return
*/
List<UserEntity> getUserEntityListByUsernameStartingWith(String username);
6.5.4 EndingWith
以指定条件结尾。
/**
* 获取用户名为指定用户名结尾的用户信息
*
* @param username 用户名
* @return
*/
List<UserEntity> getUserEntityListByUsernameEndingWith(String username);
6.5.5 Containing
包含指定条件。
/**
* 获取用户名包含指定用户名的用户信息
*
* @param username 用户名
* @return
*/
List<UserEntity> getUserEntityListByUsernameContaining(String username);
6.6 in判断
6.6.1 In
满足指定条件之一。
/**
* 根据用户名列表获取用户信息
*
* @param usernameList 用户名列表
* @return
*/
List<UserEntity> getUserEntityListByUsernameIn(List<String> usernameList);
6.6.2 NotIn
不在指定条件之内。
/**
* 用户名不在用户名列表的用户信息
*
* @param usernameList 用户名列表
* @return
*/
List<UserEntity> getUserEntityListByUsernameNotIn(List<String> usernameList);
6.7 布尔值判断
6.7.1 True
指定字段为true。
/**
* 获取性别为true的用户信息
*
* @return
*/
List<UserEntity> getUserEntityListBySexTrue();
6.7.2 False
指定字段为false。
/**
* 获取性别为false的用户信息
*
* @return
*/
List<UserEntity> getUserEntityListBySexFalse();
6.8 排序
6.8.1 OrderByXxxDesc
根据指定字段降序排序。
/**
* 获取用户信息,根据用户名降序
*
* @return
*/
List<UserEntity> getUserEntityListByOrderByUsernameDesc();
6.8.2 OrderByXxxAsc
根据指定字段升序排序。
/**
* 获取用户信息,根据用户名升序
*
* @return
*/
List<UserEntity> getUserEntityListByOrderByUsernameAsc();
注:
有关JPA的配置请查看以下博客。
Spring Boot 配置JPA(Hibernate)考虑MySQL、SQL Server、Oracle数据库(查询、新增、更新、删除数据)