Spring Data JPA 提供的核心接口
1、Repository接口
2、CrudRepository接口
3、PagingAndSortingRepository接口
4、JpaRepository接口
5、JpaSpecificationExecutor接口
Repository接口使用
1、提供了方法名称命名方式
持久层接口编写:
/*** Repository接口的方法名称命名查询*/
public interface UsersRepositoryByName extends Repository<Users, Integer> {//方法名称必须要遵循驼峰式命名规则。findBy(关键字)+属性名称(首字母要大写)+查询条件/*** 通过name查询人名** @param name* @return*/List<Users> findByName(String name);/*** 通过name和age,都满足的数据** @param name* @param age* @return*/List<Users> findByNameAndAge(String name, Integer age);/*** 查询like name* 测试的参数可以是{"zhang%","%zhang%"}* 测试的参数如果是{"zhang"},意味着精确查找name为zhang的数据** @param name* @return*/List<Users> findByNameLike(String name);/*** 查询以name开头的,满足条件的数据** @param name* @return*/List<Users> findByNameStartsWith(String name);/*** 查询以name结尾的数据** @param name* @return*/List<Users> findByNameEndingWith(String name);
}
测试类:
@RunWith(SpringRunner.class)
@SpringBootTest
public class UsersRepositoryByNameTest {@Autowiredprivate UsersRepositoryByName usersRepositoryByName;//通过name查询人名@Testpublic void findByName() {List<Users> list = usersRepositoryByName.findByName("zhangsan");for (Users u : list) {System.out.println(u);}}//通过name和age,都满足的数据@Testpublic void findByNameAndAge() {List<Users> list = usersRepositoryByName.findByNameAndAge("zhangsan", 22);for (Users u : list) {System.out.println(u);}}//查询一zhang开头的name@Testpublic void findByNameLike() {List<Users> list = usersRepositoryByName.findByNameLike("zhang");for (Users u : list) {System.out.println(u);}}//查询以name开头的,满足条件的数据@Testpublic void findByNameStartsWith() {List<Users> list = usersRepositoryByName.findByNameStartsWith("zhang");for (Users u : list) {System.out.println(u);}}//查询以name结尾的数据@Testpublic void findByNameEndingWith() {List<Users> list = usersRepositoryByName.findByNameEndingWith("a");for (Users u : list) {System.out.println(u);}}
}
本文源码下载:
github地址:
https://github.com/gb-heima/Spring-Boot-Actual-Combat/tree/master/parent/spring-boot-chapter-9