之前研究Jooq,今天来研究一下搭配JPA的QueryDSL吧。

简介

Querydsl是一个Java开源框架用于构建类型安全的SQL查询语句。它采用API代替拼凑字符串来构造查询语句。可跟 Hibernate 和 JPA 等框架结合使用。

新建Spring Boot项目

。。。还说啥?

1. pom.xml

org.springframework.boot

spring-boot-starter-data-jpa

org.springframework.boot

spring-boot-starter-web

mysql

mysql-connector-java

runtime

com.querydsl

querydsl-apt

provided

com.querydsl

querydsl-jpa

org.springframework.boot

spring-boot-starter-test

test

org.junit.vintage

junit-vintage-engine

org.springframework.boot

spring-boot-maven-plugin

com.mysema.maven

apt-maven-plugin

1.1.3

process

target/generated-sources/java

com.querydsl.apt.jpa.JPAAnnotationProcessor

2. application.yml

server:

port: 8888

spring:

datasource:

url: jdbc:mysql://IP地址:3306/querydsl?characterEncoding=UTF-8

username: 用户名

password: 密码

jpa:

show-sql: true # 控制台打印SQL

hibernate:

ddl-auto: update

3. JPAQueryFactory Bean

/**

* JPAQueryFactory Bean

* @author zhouzhaodong

*/

@Configuration

public class PeopleQueryConfig {

@Bean

public JPAQueryFactory jpaQuery(EntityManager entityManager) {

return new JPAQueryFactory(entityManager);

}

}

4. 新建实体类

/**

* 实体类

* @author zhouzhaodong

*/

@Entity

@Table(name="people")

public class People {

@Id

@Column(name="id")

@GeneratedValue

private Integer id;

@Column(name="name")

private String name;

@Column(name="age")

private Integer age;

@Column(name="address")

private String address;

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

}

5. 新建service

/**

* service

* @author zhouzhaodong

*/

public interface PeopleService {

/**

* 根据id查询

* @param id

* @return

*/

People selectOne(Integer id);

}

6. 新建serviceImpl

/**

* serviceImpl

* @author zhouzhaodong

*/

@Service

public class PeopleServiceImpl implements PeopleService {

@Resource

JPAQueryFactory queryFactory;

@Override

public People selectOne(Integer id) {

QPeople people = QPeople.people;

return queryFactory.selectFrom(people).where(people.id.eq(id)).fetchOne();

}

}

7. 新建controller

/**

* controller

* @author zhouzhaodong

*/

@RestController

public class PeopleController {

@Resource

PeopleService peopleService;

@RequestMapping("/selectById")

public People selectById(){

return peopleService.selectOne(0);

}

}

8. 新建repository,可以使用JPA原有的功能

/**

* 实现jpaRepository

* @author zhouzhaodong

*/

public interface PeopleRepository extends JpaRepository {

}

9. postman测试

数据库数据如下:

请求结果:

到此这篇关于Spring Boot整合QueryDSL的实现示例的文章就介绍到这了,更多相关SpringBoot整合QueryDSL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

java dsl框架_Spring Boot整合QueryDSL的实现示例相关推荐

  1. java ftpclient多线程_Spring Boot整合FTPClient线程池的实现示例

    最近在写一个FTP上传工具,用到了Apache的FTPClient,但是每个线程频繁的创建和销毁FTPClient对象对服务器的压力很大,因此,此处最好使用一个FTPClient连接池.仔细翻了一下A ...

  2. java 模板引擎_Spring Boot 如何快熟整合Thymeleaf模板引擎

    前面介绍了Spring Boot的优点,然后介绍了如何快速创建Spring Boot 项目.不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/zhangweizhong/ ...

  3. springboot 文件服务器_Spring Boot整合阿里OSS文件储存服务器详细教程

    一.准备工作 开发工具idea,jdk1.8,测试工具 postman 注册阿里云服务器并创建oss储存库, 创建Spring boot空项目 二. 引入pom.xml org.springframe ...

  4. apache shiro怎么升级_Spring Boot 整合 Shiro ,两种方式全总结!

    在 Spring Boot 中做权限管理,一般来说,主流的方案是 Spring Security ,但是,仅仅从技术角度来说,也可以使用 Shiro. 一般来说,Spring Security 和 S ...

  5. springboot hibernate 缓存不更新_spring boot 整合 ehcache

    1. 该说的话 每个人都应当学会独立地去思考.去寻找答案,而不是一味地伸手向他人索取所谓的标准答案. 首先,别成为"拿来主义"者,其次远离"拿来主义"的人. 2 ...

  6. java主流微服务框架_Spring Boot作为当下最流行的微服务开发框架,一名合格的Java开发者一定有所了解,...

    Spring Boot作为当下最流行的微服务开发框架,一名合格的Java开发者一定有所了解, Spring Boot相对于传统的SSM框架来说:springboot使用了特定的配置方式,开发人员不需要 ...

  7. java即时通讯框架_Spring Boot 开发私有即时通信系统(WebSocket)

    1/ 概述 利用Spring Boot作为基础框架,Spring Security作为安全框架,WebSocket作为通信框架,实现点对点聊天和群聊天. 2/ 所需依赖 Spring Boot 版本 ...

  8. java前后端分离框架_Spring Boot 入门及前后端分离项目实践

    本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 个部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 项目实践开发.Spring Boot ...

  9. springfox源码_Spring boot整合Springfox在线生成restful的api doc

    Springfox是什么,有什么用? Springfox基于Swagger,能更方便的集成到spring boot 中,Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTf ...

最新文章

  1. Gradle for Android 第三篇( 依赖管理 )
  2. bzoj1334[Baltic2008]Elect(背包dp)
  3. A. Boredom【DP】
  4. 保研计算机辅助翻译,本科2013级推免生寄语
  5. 用hibernate类实现数据库的基本操作
  6. stm32l0的停止模式怎么唤醒_关于Mac睡眠模式,你不知道的那些事
  7. Spring源码之事务(二)
  8. poi(easypoi)导出excel(xls,xlsx)后,文件打开错误或乱码的解决方法(亲测)
  9. Android 自定义viewGroup实现淘宝二楼及处理多指触控事件
  10. 国家各个政府机构网站
  11. OpenCV——图像矩
  12. CPU使用率100%怎么办
  13. aws ebs 分析_使用AWS Comprehend进行情感分析
  14. 好看的404,500页面
  15. JAVA入门-024(int的正负数)
  16. Transformer for image quality assessment阅读笔记
  17. DAEMON Tools Lite 虚拟光驱,安装iso文件,提示需要管理员权限的问题解决
  18. esp32 smtp发送邮件micropython
  19. vue中使用Antv g6构建简单流程图
  20. MPU6500驱动调试笔记(STM32F427+SPI2)

热门文章

  1. 在Windows上用virtualbox虚拟机安装mac苹果系统
  2. 饭统网倒闭:不创新、不放权就是作死
  3. stata 导出 相关系数表_Stata高效输入:搜狗输入法自定义短语
  4. php pfm 改端口,PFM修复体外形的口腔卫生与美学意义
  5. Java设计模式—状态模式
  6. 知识产权恶意侵权是什么意思
  7. 【Jinja2】模板继承(八)
  8. synchronized 什么时候释放锁
  9. 单点登录cas综述之cas4.2.7服务端+cas客户端+示例程序+环境搭建说明-陈杰
  10. 基于NSGAII的多目标遗传优化算法的matlab仿真