关于 QueryDSL
最近写项目,使用到了 Jpa 这个 ORM 规范支持,使用注解的方式实现 Sql ,但是用过 Jpa 的同学都知道 Jpa 对于单表操作很灵活,但是对于复杂一些的 SQL 就是很不友好了,所以这个地方我们就用到了 QueryDSL 来实现复杂的 Sql(另外强行安利一波 Tk-MyBatis)
什么是 QueryDSL ?
QueryDSL仅仅是一个通用的查询框架,专注于通过 JavaAPI 构建类型安全的 Sql 查询,也可以说 QueryDSL 是基于各种 ORM 框架以及 Sql 之上的一个通用的查询框架,QueryDSL 的查询,类是于 SQL 查询,很全面只不过一个是用 SQL 一个是用代码来代替 SQL -- 不多了解 QueryDSL 的其他方面了,直接进入看配置和代码吧,毕竟博主也是刚刚接触这个查询框架,就不做过多的误导了
说一下,下面示例的环境 -- MyBatis + IDEA + JPA + QueryDSL
---------------------------------------------------- 手动分界线 ----------------------------------------------------
以下为项目操作(创建项目的操作就先省略掉了,这个应该都会,不会的可以去看博主的其他博客):
首先配置 pom.xml 更古不变的定律 T_T!! 对了在安利一个插件 lombok,配合 QueryDSL 可能会更好
<!-- QueryDSL 相关依赖 -->
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<scope>provided</scope>
</dependency>
<!-- lombok 相关依赖 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.10</version>
<scope>provided</scope>
</dependency>
Ps:lombok 可以已注解的方式来对代码进行简化,省去了 get 和 set 方法,至于怎么使用 lombok ,先看本文示例吧
配置 application.properties 文件
server.port=8080
server.servlet.context-path=/
server.tomcat.uri-encoding=utf-8
###添加 MySQL 数据库配置
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/boot_test?serverTimezone=UTC&characterEncoding=UTF-8&useUnicode=true
###用户名
spring.datasource.username=xxx
###密码
spring.datasource.password=xxx
###驱动
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#是否自动生