· 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。MONGODB

非常好的一个东西 防止数据库的差异 sql的写错

下面我们来怎么是用querydsl与 spring整合 spring对querdsl提供了 支持 那就是模板方式queryDslJdbcTemplate 封装了querydsl 的处理 怎么使用 我们下一张详细说明

第一步 我们pom要加入相关依赖 上一篇文章 已经加入了querydsl 还需要加入

<dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-jdbc-core</artifactId><version>1.0.0.RELEASE</version></dependency>

第二步 在spring-jdbc.xml加入

<bean id="queryDslJdbcTemplate" class="org.springframework.data.jdbc.query.QueryDslJdbcTemplate">

<constructor-arg ref="dataSource" />

</bean>

第三步 不得不提的就是querydsl 都是使用中间实体Qmodel 也就是querydslModel 这些实体是用工具生成的

生成方式 有好几种 第一种 插件方式 这种方式 注意的就是配置的生成文件目录一定要事先建好,还有个就是querydsl的注解

@QuerySupertype 在父类用

@QueryEntity 在类上用

在相应的实体上加了上述注解后 再在pom.xml加入相应的插件

1.jdbc普通的方式

<plugin><groupId>com.mysema.maven</groupId>

<artifactId>apt-maven-plugin</artifactId>

<version>1.0.8</version>

<dependencies>

<dependency>

<groupId>com.mysema.querydsl</groupId>

<artifactId>querydsl-apt</artifactId>

<version>${querydsl.version}</version>

</dependency>

</dependencies>

<executions>

<execution>

<phase>generate-sources</phase>

<goals>

<goal>process</goal>

</goals>

<configuration>

<outputDirectory>target/generated-sources/java</outputDirectory>//切记切记 这个目录一定要事先建好 否则无法生成qmodel

<processor>com.mysema.query.apt.QuerydslAnnotationProcessor</processor>

</configuration>

</execution>

</executions></plugin>

2 hibernate or jpa or spring data 的插件配置

HIBERNATE

<plugin>

<groupId>com.mysema.maven</groupId>

<artifactId>maven-apt-plugin</artifactId>

<version>0.3.2</version>

<executions>

<execution>

<goals>

<goal>process</goal>

</goals>

<configuration>

<outputDirectory>target/generated-sources/java</outputDirectory>

<processor> com.mysema.query.apt.hibernate.HibernateAnnotationProcessor</processor>

</configuration>

</execution>

</executions>

</plugin>

JPA

<plugin>

<groupId>com.mysema.maven</groupId>

<artifactId>maven-apt-plugin</artifactId>

<version>0.3.2</version>

<executions>

<execution>

<goals>

<goal>process</goal>

</goals>

<configuration>

<outputDirectory>target/generated-sources/java</outputDirectory>

<processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>

</configuration>

</execution>

</executions>

</plugin>

mongodb

<plugin>

<groupId>com.mysema.maven</groupId>

<artifactId>maven-apt-plugin</artifactId>

<version>1.0</version>

<executions>

<execution>

<goals>

<goal>process</goal>

</goals>

<configuration>

<outputDirectory>${generatedSources}<outputDirectory>

<processor>com.mysema.query.mongodb.morphia.MorphiaAnnotationProcessor</processor>

</configuration>

</execution>

</executions>

</plugin>

第二种 数据方式 个人最推荐 也是最好的

在数据库中建好生成表 然后写一个工具类 工具类只要一下几句

MetaDataExporter exporter = new MetaDataExporter();

exporter.setPackageName("com.cn21.talk.qmodel");

exporter.setTargetFolder(new File("src/main/java"));

exporter.setTableNamePattern(tabName);

exporter.export(conn.getMetaData());

执行生成后的Qmodel如图所示

至此 整合querydsl已经全部完成 下一张 将开启querydsl使用教程篇章

QueryDSL介绍相关推荐

  1. SpringBoot12 QueryDSL01之QueryDSL介绍、springBoot项目中集成QueryDSL、利用QueryDSL实现单表RUD、新增类初始化逻辑...

    1 QueryDSL介绍 1.1 背景 QueryDSL的诞生解决了HQL查询类型安全方面的缺陷:HQL查询的扩展需要用字符串拼接的方式进行,这往往会导致代码的阅读困难:通过字符串对域类型和属性的不安 ...

  2. #研发解决方案介绍#基于ES的搜索+筛选+排序解决方案

    郑昀 基于胡耀华和王超的设计文档 最后更新于2014/12/3 关键词:ElasticSearch.Lucene.solr.搜索.facet.高可用.可伸缩.mongodb.SearchHub.商品中 ...

  3. querydsl动态 sql_Spring data jpa 复杂动态查询方式总结

    一.Spring data jpa 简介 首先JPA是Java持久层API,由Sun公司开发, 希望整合ORM技术,实现天下归一.  诞生的缘由是为了整合第三方ORM框架,建立一种标准的方式,目前也是 ...

  4. Elasticsearch 基本介绍及其与 Python 的对接实现

    什么是 Elasticsearch 想查数据就免不了搜索,搜索就离不开搜索引擎,百度.谷歌都是一个非常庞大复杂的搜索引擎,他们几乎索引了互联网上开放的所有网页和数据.然而对于我们自己的业务数据来说,肯 ...

  5. Spring Data JPA REST Query QueryDSL

    案例概述 在本教程中,我们将研究使用Spring Data JPA和Querydsl为REST API构建查询语言. 在本系列的前两篇文章中,我们使用JPA Criteria和Spring Data ...

  6. Spring Boot (六): 为 JPA 插上翅膀的 QueryDSL

    在前面的文章中,我们介绍了 JPA 的基础使用方式,<Spring Boot (三): ORM 框架 JPA 与连接池 Hikari>,本篇文章,我们由入门至进阶的介绍一下为 JPA 插上 ...

  7. Spring JPA整合QueryDSL

    前言 Spring JPA是目前比较常用的ORM解决方案,但是其对于某些场景并不是特别的方便,例如查询部分字段,联表查询,子查询等. 而接下来我会介绍与JPA形成互补,同时也是与JPA兼容得很好的框架 ...

  8. java dsl框架_Spring Boot整合QueryDSL的实现示例

    之前研究Jooq,今天来研究一下搭配JPA的QueryDSL吧. 简介 Querydsl是一个Java开源框架用于构建类型安全的SQL查询语句.它采用API代替拼凑字符串来构造查询语句.可跟 Hibe ...

  9. JspXCMS自学(一)JspXCMS介绍

    一.CMS是什么? CMS是Content Management System的缩写,意为"内容管理系统",它具有许多基于模板的优秀设计,可以加快网站开发的速度和减少开发的成本.通 ...

  10. Elasticsearch的介绍 以及使用python操作es详细步骤

    一. 什么是 Elasticsearch 想查数据就免不了搜索,搜索就离不开搜索引擎,百度.谷歌都是一个非常庞大复杂的搜索引擎,他们几乎索引了互联网上开放的所有网页和数据.然而对于我们自己的业务数据来 ...

最新文章

  1. 用漫画了解 Linux 内核到底长啥样!
  2. Windows开启WMI时一些总结
  3. JS表格分页(封装版)
  4. python怎样把两个图画到一起_python实现两张图片拼接为一张图片并保存
  5. SpringBoot:与MyBatis合作
  6. LeetCode 395. 至少有K个重复字符的最长子串(分治)
  7. python多线程输出_萌新python多线程
  8. java.io下载_java io 文件下载
  9. Github | PyTorch实现的深度强化学习算法集
  10. 【LeetCode】【HOT】105. 从前序与中序遍历序列构造二叉树(哈希表+递归)
  11. hibernate 一对多_为什么很多人不愿意用hibernate了?
  12. oracle mysql us7acsii_有关oracle数据库us7ascii字符集转换策略的探讨
  13. Windows Server 2012 Backup安装
  14. 联想微型计算机m8000u配置,联想的产品介绍-20210412075714.pdf-原创力文档
  15. 【UE4】蓝图转为C++官方教程部分笔记
  16. vue 移动端音乐(3) amp;amp;gt;热门歌单推荐部分(webpack-dev-conf.js做后端接口代理+scroll插件)
  17. 2019第五届中国诗歌春晚致敬先贤
  18. Illustrator “图像裁切”功能如何使用?
  19. 常见嵌入式/C/C++面试题100+集合(含参考答案)-更新中
  20. Black Duck

热门文章

  1. C# 实现局域网的windows环境下的桌面分享
  2. php wind8.5,PHPWind 8.5 正式版源码下载
  3. windows 用户基本查看命令
  4. 计算机上键盘无法输入法,电脑中输入法设置窗口提示检测到不兼容的键盘驱动的解决方法...
  5. activex 控件 过期,解决“无法注册Flash Player 的ActiveX控件”的问题
  6. OpenCore引导配置说明第十一版说明-基于OpenCore-0.6.4正式版
  7. pdf (便携式文档格式)
  8. 【科研论文】找到中文论文的英文引用格式
  9. scrapy框架使用教程
  10. Android 11 存储权限适配指南