1 QueryDSL

QueryDSL仅仅是一个通用的查询框架,专注于通过Java API构建类型安全的SQL查询。

Querydsl可以通过一组通用的查询API为用户构建出适合不同类型ORM框架或者是SQL的查询语句,也就是说QueryDSL是基于各种ORM框架以及SQL之上的一个通用的查询框架。

借助QueryDSL可以在任何支持的ORM框架或者SQL平台上以一种通用的API方式来构建查询。目前QueryDSL支持的平台包括JPA,JDO,SQL,Java Collections,RDF,Lucene,Hibernate Search。

2 Maven依赖

     <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!--hutool工具包--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.5.1</version></dependency><!-- QueryDsl --><dependency><groupId>com.querydsl</groupId><artifactId>querydsl-jpa</artifactId></dependency><dependency><groupId>com.querydsl</groupId><artifactId>querydsl-apt</artifactId><scope>provided</scope></dependency>

3 Maven插件

            <plugin><groupId>com.mysema.maven</groupId><artifactId>apt-maven-plugin</artifactId><version>1.1.3</version><executions><execution><goals><goal>process</goal></goals><configuration><outputDirectory>target/generated-sources/java</outputDirectory><processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor></configuration></execution></executions></plugin>

4 Spring Boot配置


#连接mysql数据库
spring.datasource.url = jdbc:mysql://localhost:3306/xudongbase?useUnicode=true&characterEncoding=utf8&useOldAliasMetadataBehavior=true&useTimezone=true&serverTimezone=GMT%2B8&useLegacyDatetimeCode=false
spring.datasource.username = root
spring.datasource.password = xudong123456
spring.jpa.database = mysql

5 UserEntity

用户信息实体类。

package com.entity;import lombok.Data;import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;/*** 用户信息实体类*/
@Data
@Table(name = "users")
@Entity
public class UserEntity {/*** 用户名*/@Column(name = "username")@Idprivate String username;/*** 昵称*/@Column(name = "pickname")private String pickname;/*** 密码*/@Column(name = "password")private String password;/*** 性别*/@Column(name = "sex")private String sex;
}

6 生成Query查询实体类

6.1 配置项目的maven命令

第一步,点击Run->Edit Configurations,进入Run/Debug Configurations窗口。

第二步, 点击+号,再点击Maven,生成一条Maven配置。

第三步,在Comand line 输入 compile,点击Apply。

6.2 生成Query查询实体类

第一步,点击运行按钮,生成Query查询实体类。

7 UserRepository

package com.dao;import com.entity.UserEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.querydsl.QuerydslPredicateExecutor;public interface UserRepository extends JpaRepository<UserEntity,Long>, QuerydslPredicateExecutor<UserEntity> {
}

8 调试代码

package com.controller;import com.dao.UserRepository;
import com.entity.QUserEntity;
import com.entity.UserEntity;
import com.querydsl.core.types.dsl.BooleanExpression;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;@RestController
public class UserController {@Autowiredprivate UserRepository userRepository;/*** 获取用户信息** @param username 用户名* @return*/@GetMapping("/getUserList")public List<UserEntity> getUserList(@RequestParam String username) {//查询实体QUserEntity qUserEntity = QUserEntity.userEntity;BooleanExpression expression = qUserEntity.username.contains(username);List<UserEntity> userEntityList = StreamSupport.stream(userRepository.findAll(expression).spliterator(),false).collect(Collectors.toList());return userEntityList;}
}

9 调试结果

9.1 查询数据

Spring Boot配置QueryDSL(生成Query查询实体类,查询数据)相关推荐

  1. Spring Boot 配置Kaptcha(谷歌验证码工具)(生成验证码、验证验证码)

    1 Kaptcha 1.1 Kaptcha简介 Kaptcha 是一个扩展自simplecaptcha的验证码库,默认情况下,Kaptcha非常易于设置和使用,并且默认输出会产生一个很难验证的验证码. ...

  2. Spring Boot 集成 Swagger 生成 RESTful API 文档

    原文链接: Spring Boot 集成 Swagger 生成 RESTful API 文档 简介 Swagger 官网是这么描述它的:The Best APIs are Built with Swa ...

  3. spring boot配置详情

    spring boot配置详情如下:  1.MVC相关  mvc  spring.mvc.async.request-timeout设定async请求的超时时间,以毫秒为单位,如果没有设置的话,以具体 ...

  4. spring boot配置mybatis和事务管理

    spring boot配置mybatis和事务管理 一.spring boot与mybatis的配置 1.首先,spring boot 配置mybatis需要的全部依赖如下: <!-- Spri ...

  5. Spring Boot 配置元数据指南

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 遗失的拂晓 来源 | 公众号「锅外的大佬」 1. 概览 在编写 Spring Bo ...

  6. java多个数据库数据进行访问_通过Spring Boot配置动态数据源访问多个数据库的实现代码...

    之前写过一篇博客<Spring+Mybatis+Mysql搭建分布式数据库访问框架>描述如何通过Spring+Mybatis配置动态数据源访问多个数据库.但是之前的方案有一些限制(原博客中 ...

  7. Spring Boot 配置随机数那些小技巧

    转载自  Spring Boot 配置随机数那些小技巧 Spring Boot支持在系统加载的时候配置随机数. 添加config/random.properties文件,添加以下内容: #随机32位M ...

  8. mysql 多数据源访问_通过Spring Boot配置动态数据源访问多个数据库的实现代码

    之前写过一篇博客<Spring+Mybatis+Mysql搭建分布式数据库访问框架>描述如何通过Spring+Mybatis配置动态数据源访问多个数据库.但是之前的方案有一些限制(原博客中 ...

  9. spring boot配置dubbo注意事项

    spring boot配置dubbo注意事项 通过前两篇文章,知道了spring boot配置dubbo有两种方式.具体请回顾前两篇文章吧. 现在主要是说下spring boot在自己的applica ...

  10. 超全、超详的Spring Boot配置讲解笔记

    超全.超详的Spring Boot配置讲解笔记 springboot默认加载配置 SpringBoot使用两种全局的配置文件,全局配置文件可以对一些默认配置进行修改. application.prop ...

最新文章

  1. 为创业者保驾护航 “无安全 不创业” 安全狗全国路演北京站
  2. exchange server 2003 错误处理
  3. 第十三届全国大学生智能汽车竞赛 裁判系统使用说明
  4. 多线程面试题_100多线程和Java并发面试问答–最终清单(PDF下载)
  5. java填空题答案_JAVA求填空题答案
  6. 2.4g 无线键鼠对码软件_无线路由器的2.4G和5G同时开速度有影响吗?
  7. springmvc-返回值
  8. [转]Laravel 4之URL生成
  9. [置顶] export命令-linux
  10. 重构现有代码:Refactoring
  11. 【免费下载】2021年7月热门报告盘点(附热门报告列表及下载链接)
  12. Java 面试题目最全集合1000+ 大放送,能答对70%就去BATJTMD
  13. VPP 助你创新更高效、更灵活的报文处理方案
  14. xshell查看hdfs文件目录路径_hdfs的shell操作
  15. Java合并两个有序链表
  16. linux 天文软件,Stellarium 0.18.0虚拟天文馆软件发布,支持HiPS
  17. Google SketchUp SKP文件转OBJ 专业版注册机
  18. Excel快速拆分单元格内容
  19. InvalidDefinitionException: No serializer found for class java.lang.Object and no properties discove
  20. win10 系统重装 (官方纯净版,无预置应用)

热门文章

  1. delphi查看源码版本_Eigen 版本切换(ubuntu 16.04)
  2. 基于VB.Net的FTP操作的类(可以显示进度条)
  3. 口袋妖怪c语言代码大全,口袋妖怪漆黑的魅影金手指代码 游戏代码大全分享
  4. ECshop商城程序常见的97个小问题汇总
  5. 怎么删除360base64.dll,这个方法百分百管用
  6. APUE学习(一)基础知识
  7. android使用cpu软解,Android 使用自带的MediaCodec 框架进行本地视频压缩,速度嗖嗖的,亲测有效!!!...
  8. 实现一个监控 IP 的 windows 服务
  9. 知识词典 »网站地图
  10. python gps坐标系utm坐标系等不同坐标系相互转换详细教材