方法一

使用原生sql查询 或者 为方法名增加 Pageable参数

import  org.springframework.data.domain.Pageable;

public interface BookQueryRepository extends Repository<Book, Long> {

    //原生的sql语句,要使用数据表名
@Query(value = "select * from tb_book b where b.name=?1", nativeQuery = true)
List<Book> findByName(String name); //基础查询 重要说明 JPA规范中的定义JPQL是不能使用星号(*)来查询的
@Query(value = "select name,author,price from Book b where b.price>?1 and b.price<?2")
List<Book> findByPriceRange(long price1, long price2);

   @Query("select t from Book t")
List<Book> findAllBook1();
   @Query("select * from book " , nativeQuery = true)
List<Book> findAllBook2();
//Like表达式
@Query(value = "select name,author,price from Book b where b.name like %:name%")
List<Book> findByNameMatch(@Param("name") String name); //使用@Param注解注入参数
@Query(value = "select name,author,price from Book b where b.name = :name AND b.author=:author AND b.price=:price")
List<Book> findByNamedParam(@Param("name") String name, @Param("author") String author,
@Param("price") long price); //分页查询 原生sql语句
@Query(value = "SELECT * FROM tb_book WHERE name = ?1",
countQuery = "SELECT count(*) FROM tb_book WHERE name = ?1",
nativeQuery = true)
Page<Book> findByName(String name, Pageable pageable); //分页查询
@Query("select name,author,price from Book b where b.name=?")
public List<Book> findByNamePaged(String certNum,Pageable pageable);
}

业务层调用

public class BookService {

    @Autowired
private BookQueryRepository bookQueryDao;
public Page<Book> getBook(int pageNumber,int pageSize){
PageRequest request = this.buildPageRequest(pageNumber,pageSize);
Page<Book> result= bookQueryDao.findByName("123123",request);
return result;
}   //构建PageRequest
private PageRequest buildPageRequest(int pageNumber, int pagzSize) {
return new PageRequest(pageNumber - 1, pagzSize, null);
}
}

方法二

直接使用 PagingAndSortingRepository

import org.springframework.data.repository.PagingAndSortingRepository;

public interface BookQueryRepository extends PagingAndSortingRepository<Book, String> {

}

业务层调用

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; public class BookService { @Autowired
private BookQueryRepository bookQueryDao;
public Page<Book> getBook(int pageNumber,int pageSize){
PageRequest request = this.buildPageRequest(pageNumber,pageSize);
Page<Book> result= bookQueryDao.findAll(request);
return result;
}   //构建PageRequest
private PageRequest buildPageRequest(int pageNumber, int pagzSize) {
return new PageRequest(pageNumber - 1, pagzSize, null);
}
}

SpringBoot 使用JPA+MySQL+Thymeleaf 总结 二的更多相关文章

  1. SpringBoot 使用JPA+MySQL+Thymeleaf 总结 一

    SpringBoot 使用JPA+MySQL+Thymeleaf 总结 一 SpringBoot 使用JPA+MySQL+Thymeleaf 总结 二 pom引用 <?xml version=& ...

  2. Springboot+Atomikos+Jpa+Mysql实现JTA分布式事务

    1 前言 之前整理了一个spring+jotm实现的分布式事务实现,但是听说spring3.X后不再支持jotm了,jotm也有好几年没更新了,所以今天整理springboot+Atomikos+jp ...

  3. springboot+jpa+mysql+redis+swagger整合步骤

    springboot+jpa+MySQL+swagger框架搭建好之上再整合redis: 在电脑上先安装redis: 一.在pom.xml中引入redis 二.在application.yml里配置r ...

  4. springboot+jpa+mysql+swagger整合

    Springboot+jpa+MySQL+swagger整合 创建一个springboot web项目 <dependencies> <dependency>      < ...

  5. 二、springboot使用jpa

    花了几天时间,好好看了看springboot的jpa部分,总结了常用的形式. 1.通过STS工具添加jpa的依赖项 要连mysql,测试的时候需要web,顺便添加了lombok不写set和get方法了 ...

  6. 【SpringBoot】SpringBoot/MyBatis/MySql/thymeleaf/Log4j整合工程

    工程下载地址:https://files.cnblogs.com/files/xiandedanteng/MMSpringWeb20191027-1.rar 工程目录结构如图: 1.创建工程 有些网文 ...

  7. SpringBoot入门系列:第五篇 JPA mysql(转)

    一,准备工作,建立spring-boot-sample-mysql工程1.http://start.spring.io/ A.Artifact中输入spring-boot-sample-mysql B ...

  8. spring-boot jpa mysql emoji utfmb4 异常处理

    spring-boot jpa mysql utf8mb4 emoji 写入失败 mysql database,table,column 默认为utf8mb4 Caused by: java.sql. ...

  9. IDEA SpringBoot+JPA+MySql+Redis+RabbitMQ 秒杀系统

    先放上github地址:spike-system,可以直接下载完整项目运行测试 SpringBoot+JPA+MySql+Redis+RabbitMQ 秒杀系统 技术栈:SpringBoot, MyS ...

随机推荐

  1. node.js 实现 AES CTR 加解密

    node.js 实现 AES CTR 加解密 node aesctr 前言 由于最近我们在做一款安全的文件分享 App, 所有文件均需要使用 aes ctr 来进行加密,aes key 还有一整套完整 ...

  2. 由于代码环境有dev test prod ,每次提交代码需要很多环境,shell脚本即可解决重复命令问题

    在项目外面写入push.sh 内容为 if [  $1!='' ] then    msg=$1; else    msg='bug'; fi   git add .  git commit -m $ ...

  3. JAVA笔记15-线程同步

    一.概念 1.多个线程之间访问同一资源,进行协调的过程是线程同步.例如两个人同时操作同一银行账户.解决方法:加锁 2.Java种引入对象互斥锁的概念,保证共享数据操作的完整性.每个对象都对应于一个可称 ...

  4. 【GDOI2013模拟4】贴瓷砖

    题目 A镇的主街是由N个小写字母构成,镇长准备在上面贴瓷砖,瓷砖一共有M种,第i种上面有Li个小写字母,瓷砖不能旋转也不能被分割开来,瓷砖只能贴在跟它身上的字母完全一样的地方,允许瓷砖重叠,并且同一种 ...

  5. spring boot2.0.2,<-1.4.8

    DataSourceBuilder cannot be resolved DataSourceBuilder cannot be resolved to a type RelaxedPropertyR ...

  6. Linux基础教程 linux中使用find命令搜索文件常用方法记录

    find是linux非常强大的搜索命令,通过man find查看find手册,可以发现find的说明一屏接一屏,估计要看完也得花不少时间.兄弟连Linux培训 小编总结了下,整理出find常用的使用方 ...

  7. 2019 Multi-University Training Contest 3 T7 Find the answer

    Find the answer Time Limit: 4000/4000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tota ...

  8. R-CNN常见问题

    可以不进行特定样本下的微调吗?可以直接采用AlexNet CNN网络的特征进行SVM训练吗? 不针对特定任务进行微调,而将CNN当成特征提取器,pool5层得到的特征是基础特征,类似于HOG.SIFT ...

  9. sqli-labs(19)

    百度了一下 基于错误的referer头的注入 0X01爱之初体验 猜测是基于referer头的注入 我们在referer后面加入单引号测试一下 真的报错了诶 那我们猜测一下 他应该是把 referer ...

  10. hibernate UML图