2024年[springboot一本通]-4(5),为什么数据库会丢失数据

总结

谈到面试,其实说白了就是刷题刷题刷题,天天作死的刷。。。。。

为了准备这个“金三银四”的春招,狂刷一个月的题,狂补超多的漏洞知识,像这次美团面试问的算法、数据库、Redis、设计模式等这些题目都是我刷到过的

并且我也将自己刷的题全部整理成了PDF或者Word文档(含详细答案解析)

我的美团offer凉凉了?开发工程师(Java岗)三面结束等通知...

66个Java面试知识点

架构专题(MySQL,Java,Redis,线程,并发,设计模式,Nginx,Linux,框架,微服务等)+大厂面试题详解(百度,阿里,腾讯,华为,迅雷,网易,中兴,北京中软等)

我的美团offer凉凉了?开发工程师(Java岗)三面结束等通知...

算法刷题(PDF)

我的美团offer凉凉了?开发工程师(Java岗)三面结束等通知...

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

@Column(length = 512)

private String content;



private Date createTime;

}




*   @Entity 表示这个类是一个实体类,接受JPA控制管理,对应数据库中的一个表

*   @Table 指定这个类对应数据库中的表名。如果这个类名和数据库表名符合驼峰及下划线规则,可以省略这个注解。如FlowType类名对应表名flow\_type。

*   @Id 指定这个字段为表的主键

*   @GeneratedValue(strategy=GenerationType.IDENTITY) 指定主键的生成方式,一般主键为自增的话,就采用GenerationType.IDENTITY的生成方式

*   @Column 注解针对一个字段,对应表中的一列。nullable = false表示数据库字段不能为空, unique = true表示数据库字段不能有重复值,length = 32表示数据库字段最大程度为32.

*   @Data、@AllArgsConstructor、@NoArgsConstructor、@Builder都是插件lombok的注解,用来帮助我们生成set、get方法、构造函数等实体类的模板代码。



[]( )三、Repository定义

-----------------------------------------------------------------------



定义一个接口ArticleRepository继承 PagingAndSortingRepository。PagingAndSortingRepository接口不仅包含基础的CURD函数,还支持排序、分页的接口函数定义。



public interface ArticleRepository extends PagingAndSortingRepository<Article,Long> {

 //查询article表的所有数据,传入Pageable分页参数,不需要自己写SQL

Page<Article> findAll(Pageable pageable);

//根据author字段查询article表数据,传入Pageable分页参数,不需要自己写SQL

Page<Article> findByAuthor(String author, Pageable pageable);

//根据author字段和title字段,查询article表数据,传入Pageable分页参数,不需要自己写SQL

Slice<Article> findByAuthorAndTitle(String author, String title, Pageable pageable);

}




[]( )四、实现分页

---------------------------------------------------------------



Pageable 是Spring定义的接口,用于分页参数的传递,我们看看如何使用它。首先将ArticleRepository注入到你需要进行持久层操作的类里面,通常是一个@Service注解的类,然后在服务方法内使用如下代码进行分页操作:查询第一页(从0开始)的数据,每页10条数据。



Pageable pageable = PageRequest.of(0, 10); //第一页

//Pageable pageable = PageRequest.of(1, 10); //第二页

//Pageable pageable = PageRequest.of(2, 10); // 第三页

//数据库操作获取查询结果

Page

articlePage = articleRepository.findAll(pageable);

//将查询结果转换为List

List

articleList = articlePage.getContent();




findAll方法以Page类的对象作为响应,如果我们想获取查询结果List,可以使用getContent()方法。但是笔者不建议这样进行转换,因为前端展示一个分页列表,不仅需要数据,而且还需要一些分页信息。如:当前第几页,每页多少条,总共多少页,总共多少条。这些信息在Page(articlePage)对象里面均可以获取到(下文中有介绍)。



[]( )五、实现排序

---------------------------------------------------------------



Spring Data JPA提供了一个 `Sort`对象,用以提供一种排序机制。让我们看一下排序的方式。



articleRepository.findAll(Sort.by(“createTime”));

articleRepository.findAll(Sort.by(“author”).ascending()

                    .and(Sort.by("createTime").descending()));



*   第一个findAll方法是按照createTime的升序进行排序

*   第一个findAll方法是按照author的升序排序,再按照createTime的降序进行排序



### []( )分页和排序在一起



Pageable pageable = PageRequest.of(0, 10,Sort.by(“createTime”));




[]( )六、Slice与Page

---------------------------------------------------------------------



在ArticleRepository我们看到了一个方法返回Slice和另一个方法返回了Page。它们都是Spring Data JPA的数据响应接口,其中 Page 是 Slice的子接口。它们都用于保存和返回数据。



### []( )6.1.**Slice**



让我们看一下 Slice的一些重要方法。



List getContent(); //获取切片的内容

Pageable getPageable(); //当前切片的分页信息

boolean hasContent(); //是否有查询结果?

boolean isFirst(); //是否是第一个切片

boolean isLast(); //是否是最后一个切片

Pageable nextPageable(); // 下一个切片的分页信息

Pageable previousPageable(); // 上一个切片的分页信息



## 总结

在清楚了各个大厂的面试重点之后,就能很好的提高你刷题以及面试准备的效率,接下来小编也为大家准备了最新的互联网大厂资料。

![在这里插入图片描述](https://img-blog.csdnimg.cn/img_convert/37bbf3b8ceeb1fe87328071630c541a2.webp?x-oss-process=image/format,png)

![在这里插入图片描述](https://img-blog.csdnimg.cn/img_convert/e98cac10d8986a8fa795decf4d9c5cd5.webp?x-oss-process=image/format,png)

![在这里插入图片描述](https://img-blog.csdnimg.cn/img_convert/22f969b4c2b90954b462f22007e1cdfc.webp?x-oss-process=image/format,png)

![在这里插入图片描述](https://img-blog.csdnimg.cn/img_convert/7b679eac4509230c8b55c16c6944cdd2.webp?x-oss-process=image/format,png)

> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

j7IW-1715011169954)]

> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

  • 20
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值