SpringBoot12 QueryDSL01之QueryDSL介绍、springBoot项目中集成QueryDSL

 

1 QueryDSL介绍   1.1 背景

    QueryDSL的诞生解决了HQL查询类型安全方面的缺陷;HQL查询的扩展需要用字符串拼接的方式进行,这往往会导致代码的阅读困难;通过字符串对域类型和属性的不安全引用又是HQL面临的问题。

    随着类型安全的域模型给软件开发带来的巨大好处,域的更改可以直接反应在查询上,而且随着域的更改查询也会自动随着改变。(即:同一套查询,只需要通过改变域就可以实现不同的查询)

    针对Hibernate的HQL是Querydsl的第一个目标语言,但现在它支持JPA,JDO,JDBC,Lucene,Hibernate Search,MongoDB,Collections和RDFBean作为后端。

  1.2 原则     1.2.1 类型安全

      查询是根据生成的查询类型进行构建的,这些生成的查询类型反映了你域类型的属性。调用相关查询方法来构建查询时也是完全以一种类型安全的方式进行

    1.2.2 一致性

      查询的路径和操作在所有的实例中都是一样使用,查询接口也有一个通用的接口

  1.3 JPA

    Querydsl定义了用于在持久化域模型数据之上查询的一般静态类型语法,JPA是QueryDSL的主要集成技术之一

    jpa -> 点击前往

  

2 在springBoot项目中集成QueryDSL   2.1 软件版本说明

    

SpringBoot12 QueryDSL01之QueryDSL介绍、springBoot项目中集成QueryDSL

  2.2 创建SpringBoot项目

    利用IDEA创建一个SpringBoot项目,并添加web、jpa、mysql依赖

      

SpringBoot12 QueryDSL01之QueryDSL介绍、springBoot项目中集成QueryDSL

      

SpringBoot12 QueryDSL01之QueryDSL介绍、springBoot项目中集成QueryDSL

      

SpringBoot12 QueryDSL01之QueryDSL介绍、springBoot项目中集成QueryDSL

      

SpringBoot12 QueryDSL01之QueryDSL介绍、springBoot项目中集成QueryDSL

SpringBoot12 QueryDSL01之QueryDSL介绍、springBoot项目中集成QueryDSL

SpringBoot12 QueryDSL01之QueryDSL介绍、springBoot项目中集成QueryDSL

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 "> <modelVersion>4.0.0</modelVersion> <groupId>cn.test.demo</groupId> <artifactId>query_demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>query_demo</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <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.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfxsy.html