Spring Boot配置QueryDSL(生成Query查询实体类,查询数据)
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查询实体类,查询数据)相关推荐
- Spring Boot 配置Kaptcha(谷歌验证码工具)(生成验证码、验证验证码)
1 Kaptcha 1.1 Kaptcha简介 Kaptcha 是一个扩展自simplecaptcha的验证码库,默认情况下,Kaptcha非常易于设置和使用,并且默认输出会产生一个很难验证的验证码. ...
- Spring Boot 集成 Swagger 生成 RESTful API 文档
原文链接: Spring Boot 集成 Swagger 生成 RESTful API 文档 简介 Swagger 官网是这么描述它的:The Best APIs are Built with Swa ...
- spring boot配置详情
spring boot配置详情如下: 1.MVC相关 mvc spring.mvc.async.request-timeout设定async请求的超时时间,以毫秒为单位,如果没有设置的话,以具体 ...
- spring boot配置mybatis和事务管理
spring boot配置mybatis和事务管理 一.spring boot与mybatis的配置 1.首先,spring boot 配置mybatis需要的全部依赖如下: <!-- Spri ...
- Spring Boot 配置元数据指南
点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 遗失的拂晓 来源 | 公众号「锅外的大佬」 1. 概览 在编写 Spring Bo ...
- java多个数据库数据进行访问_通过Spring Boot配置动态数据源访问多个数据库的实现代码...
之前写过一篇博客<Spring+Mybatis+Mysql搭建分布式数据库访问框架>描述如何通过Spring+Mybatis配置动态数据源访问多个数据库.但是之前的方案有一些限制(原博客中 ...
- Spring Boot 配置随机数那些小技巧
转载自 Spring Boot 配置随机数那些小技巧 Spring Boot支持在系统加载的时候配置随机数. 添加config/random.properties文件,添加以下内容: #随机32位M ...
- mysql 多数据源访问_通过Spring Boot配置动态数据源访问多个数据库的实现代码
之前写过一篇博客<Spring+Mybatis+Mysql搭建分布式数据库访问框架>描述如何通过Spring+Mybatis配置动态数据源访问多个数据库.但是之前的方案有一些限制(原博客中 ...
- spring boot配置dubbo注意事项
spring boot配置dubbo注意事项 通过前两篇文章,知道了spring boot配置dubbo有两种方式.具体请回顾前两篇文章吧. 现在主要是说下spring boot在自己的applica ...
- 超全、超详的Spring Boot配置讲解笔记
超全.超详的Spring Boot配置讲解笔记 springboot默认加载配置 SpringBoot使用两种全局的配置文件,全局配置文件可以对一些默认配置进行修改. application.prop ...
最新文章
- 为创业者保驾护航 “无安全 不创业” 安全狗全国路演北京站
- exchange server 2003 错误处理
- 第十三届全国大学生智能汽车竞赛 裁判系统使用说明
- 多线程面试题_100多线程和Java并发面试问答–最终清单(PDF下载)
- java填空题答案_JAVA求填空题答案
- 2.4g 无线键鼠对码软件_无线路由器的2.4G和5G同时开速度有影响吗?
- springmvc-返回值
- [转]Laravel 4之URL生成
- [置顶] export命令-linux
- 重构现有代码:Refactoring
- 【免费下载】2021年7月热门报告盘点(附热门报告列表及下载链接)
- Java 面试题目最全集合1000+ 大放送,能答对70%就去BATJTMD
- VPP 助你创新更高效、更灵活的报文处理方案
- xshell查看hdfs文件目录路径_hdfs的shell操作
- Java合并两个有序链表
- linux 天文软件,Stellarium 0.18.0虚拟天文馆软件发布,支持HiPS
- Google SketchUp SKP文件转OBJ 专业版注册机
- Excel快速拆分单元格内容
- InvalidDefinitionException: No serializer found for class java.lang.Object and no properties discove
- win10 系统重装 (官方纯净版,无预置应用)
热门文章
- delphi查看源码版本_Eigen 版本切换(ubuntu 16.04)
- 基于VB.Net的FTP操作的类(可以显示进度条)
- 口袋妖怪c语言代码大全,口袋妖怪漆黑的魅影金手指代码 游戏代码大全分享
- ECshop商城程序常见的97个小问题汇总
- 怎么删除360base64.dll,这个方法百分百管用
- APUE学习(一)基础知识
- android使用cpu软解,Android 使用自带的MediaCodec 框架进行本地视频压缩,速度嗖嗖的,亲测有效!!!...
- 实现一个监控 IP 的 windows 服务
- 知识词典 »网站地图
- python gps坐标系utm坐标系等不同坐标系相互转换详细教材