• SpringDataJPA-02-增删改查的基本实现


    一、接口继承

    直接继承:JpaRepository<T,ID>

    说明:

    • T:表示实体类
    • ID:对应实体类的id类型
    • 功能:该接口含有多种对数据库的操作方法
    1. package com.gg.mapper;
    2. import com.gg.domain.Book;
    3. import org.springframework.context.annotation.Configuration;
    4. import org.springframework.data.jpa.repository.JpaRepository;
    5. import org.springframework.stereotype.Component;
    6. /**
    7. * @Author: {LZG}
    8. * @ClassName: BookMapper
    9. * @Description: TODO
    10. * @Date: 2022/7/5 9:52
    11. **/
    12. @Component
    13. public interface BookMapper extends JpaRepository<Book,Integer> {
    14. }

    二、实现接口含有的方法

    方法名作用
    <S extends T> S save(S entity);保存给定实体
    Optional<T> findById(ID primaryKey);根据id查找实体
    Iterable<T> findAll();查询所有实体
    long count(); 返回实体数
    void delete(T entity);        删除所给实体
     boolean existsById(ID primaryKey);是否存在所给ID的实体
    Page<T> findAll(Pageable var1);获得分页相关操作
     Iterable<T> findAll(Sort var1);排序
    1. package com.gg.jpa01curd;
    2. import com.gg.domain.Book;
    3. import com.gg.mapper.BookMapper;
    4. import org.junit.jupiter.api.Test;
    5. import org.springframework.beans.factory.annotation.Autowired;
    6. import org.springframework.boot.test.context.SpringBootTest;
    7. import org.springframework.data.domain.Page;
    8. import org.springframework.data.domain.PageRequest;
    9. import org.springframework.data.domain.Pageable;
    10. import org.springframework.test.context.ContextConfiguration;
    11. import java.util.List;
    12. import java.util.Optional;
    13. @SpringBootTest
    14. class Jpa01CurdApplicationTests {
    15. @Autowired
    16. BookMapper bookMapper;
    17. // 保存
    18. @Test
    19. void contextLoads() {
    20. // Persistence.createEntityManagerFactory();
    21. List<Book> all = bookMapper.findAll();
    22. System.out.println(all);
    23. }
    24. @Test
    25. // 保存给定实体
    26. void test1(){
    27. Book book = new Book();
    28. book.setName("Jpa测试");
    29. bookMapper.save(book);
    30. }
    31. @Test
    32. // 根据id查询实体
    33. void test2(){
    34. Optional<Book> byId = bookMapper.findById(44);
    35. System.out.println(byId);
    36. }
    37. @Test
    38. // 查询所有实体
    39. void test3(){
    40. List<Book> all = bookMapper.findAll();
    41. System.out.println(all);
    42. }
    43. @Test
    44. // 返回实体个数
    45. void test4(){
    46. long count = bookMapper.count();
    47. System.out.println(count);
    48. }
    49. @Test
    50. // 删除给定实体
    51. void test5(){
    52. Book book = new Book();
    53. book.setName("Jpa测试");
    54. book.setId(44);
    55. bookMapper.delete(book);
    56. }
    57. @Test
    58. // 是否存在给定id实体
    59. void test6(){
    60. boolean b = bookMapper.existsById(43);
    61. System.out.println(b);
    62. }
    63. @Test
    64. // 分页查询
    65. void test7(){
    66. Page<Book> all = bookMapper.findAll(PageRequest.of(1, 5));
    67. System.out.println(all.getTotalElements());
    68. System.out.println(all.getTotalPages());
    69. System.out.println(all.getContent());
    70. }
    71. }

  • 相关阅读:
    【面试刷题】——C++虚函数原理
    如何通俗理解海涅定理
    纯CSS 毛玻璃效果
    redis快速回顾
    反向传播不香了?解读 Hinton 大佬的 Forward-Forward 算法
    蓝桥杯官网练习题(旋转)
    洛谷 P1962 斐波那契数列(矩阵快速幂, 水题)
    根据PL的GPIO寄存器地址通过mmap控制GPIO
    【Latex】算法排版规律(中文排版)
    【底层服务/编程功底系列】「网络通信体系」深入探索和分析TCP协议的运输连接管理的核心原理和技术要点
  • 原文地址:https://blog.csdn.net/weixin_46147113/article/details/125620261