private Double price; //单价
private String locality; //出版社
private int storage; //库存
private String image; //商品图片
private String description; //商品描述
private Date createDate; //出版时间
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getSupplier() {
return supplier;
}
public void setSupplier(String supplier) {
this.supplier = supplier;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
public String getLocality() {
return locality;
}
public void setLocality(String locality) {
this.locality = locality;
}
public int getStorage() {
return storage;
}
public void setStorage(int storage) {
this.storage = storage;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
}
2、定义数据访问层接口
在repository包下新建一个接口,命名为ArticleRepository,让该接口继承PagingAndSortingRepository继承,以持久化对象Article作为PagingAndSortingRepository的第一类型参数,表示当前所操作的持久化对象类型,Integer作为PagingAndSortingRepository的第二个类型参数,用于指定ID类型,完整代码如下
import com.mcy.springdatajpa.entity.Article;
import org.springframework.data.repository.PagingAndSortingRepository;
public interface ArticleRepository extends PagingAndSortingRepository<Article, Integer> {
}
PagingAndSortingRepository提供了查询所有和分页查询的方法,PagingAndSortingRepository接口的源码如下
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
@NoRepositoryBean
public interface PagingAndSortingRepository<T, ID> extends CrudRepository<T, ID> {
Iterable findAll(Sort var1); //查询所有,排序
Page findAll(Pageable var1); //分页查询
}
在SpringBoot项目中,数据访问层无须提供实现,直接继承数据访问接口即可。
3、定义业务层类
ArticleService .java代码如下(有findAllSort排序查询所有,findAll分页查询两个方法)
import com.mcy.springdatajpa.entity.Article;
import com.mcy.springdatajpa.repository.ArticleRepository;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class ArticleService {
//数据访问层接口对象
@Resource
private ArticleRepository articleRepository;
//排序查询所有
public Iterable
return articleRepository.findAll(sort);
}
//分页查询所有
public Page
return articleRepository.findAll(page);
}
}
在业务层中需要注入数据访问层对象,在上述代码中通过@Resource注解将ArticleRepository接口对应的实现类注入进来的。
4、定义控制器
ArticleController.java代码如下(有sortArticle排序查询所有,sortPagerArticle分页排序查询两个方法)
import com.mcy.springdatajpa.entity.Article;
import com.mcy.springdatajpa.service.ArticleService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
@RestController
@RequestMapping(“/article”)
public class ArticleController {
//注入ArticleServer
@Resource
private ArticleService articleService;
//排序查询
@RequestMapping(“/sort”)
public Iterable
//指定培训参数对象:根据id,进行降序查询
Sort sort = Sort.by(Sort.Direction.DESC, “id”);
Iterable
return articleDatas;
}
//分页排序查询
@RequestMapping(“/pager”)
public List
//指定排序参数对象:根据id,进行降序查询
Sort sort = Sort.by(Sort.Direction.DESC, “id”);
/**
-
封装分页实体
-
参数1:pageIndex表示当前查询的是第几页(默认从0开始,0表示第一页)
-
参数2:表示每页展示多少数据,现在设置每页展示2条数据
-
参数3:封装排序对象,根据该对象的参数指定根据id降序查询
*/
Pageable page = PageRequest.of(pageIndex - 1, 2, sort);
//分页查询
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://img-blog.csdnimg.cn/img_convert/b128e42f666324cf9cf5f2683ec084ef.jpeg)
技术学习总结
学习技术一定要制定一个明确的学习路线,这样才能高效的学习,不必要做无效功,既浪费时间又得不到什么效率,大家不妨按照我这份路线来学习。
最后面试分享
大家不妨直接在牛客和力扣上多刷题,同时,我也拿了一些面试题跟大家分享,也是从一些大佬那里获得的,大家不妨多刷刷题,为金九银十冲一波!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
习。
[外链图片转存中…(img-Pu6c8cmA-1713398868652)]
[外链图片转存中…(img-jA7tlGAi-1713398868652)]
[外链图片转存中…(img-ytd0hHW0-1713398868653)]
最后面试分享
大家不妨直接在牛客和力扣上多刷题,同时,我也拿了一些面试题跟大家分享,也是从一些大佬那里获得的,大家不妨多刷刷题,为金九银十冲一波!
[外链图片转存中…(img-iAQ8EWYf-1713398868654)]
[外链图片转存中…(img-ohKlqSlq-1713398868654)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!