Querydsl 是一个通用的查询框架,专注于通过JavaAPI构建类型安全的SQL查询说说Querydsl的优势吧:

1. Querydsl支持代码自动完成,因为才纯Java API编写查询,因此主流Java IDE对起的代码自动完成功能支持几乎可以发挥到极致(因为是纯Java代码,所以支持很好) 
   2. Querydsl几乎可以避免所有的SQL语法错误(当然用错了Querydsl API除外,因为不写SQL了,因此想用错也难) 
   3. Querydsl采用Domain类型的对象和属性来构建查询,因此查询绝对是类型安全的,不会因为条件类型而出现问题 
   4. Querydsl采用纯Java API的作为SQL构建的实现可以让代码重构发挥到另一个高度(这也是Criteria让笔者十分喜爱的主要原因之一) 
   5. Querydsl的领一个优势就是可以更轻松的进行增量查询的定义

  说了这么多之后,各位看官是否对Querydsl已经产生了兴趣呢?至少笔者对这个很有创意的小工具十分感兴趣,因此笔者在使用HQL构建查询的时候也曾经试图编写一个简单的查询条件构造器。现在看来Querydsl不但已经实现了笔者的想法而且其高度远在笔者至上了。不过Querydsl虽然好也需要开发团队对起使用进行一定的考量。

* 首先Querydsl并不使用现有的任何POJO进行查询构建,而是根据现有的配置生成对应的Domain Model进行查询构建,因此对于使用Hibernate的朋友回多出一组Model来 
    * 其次开发团队需要熟悉和了解Querydsl API,或者这不是一个十分漫长的过程,但毕竟需要学习成本,对于一个使用成熟框架的开发团队而言,这些是否需要。

  不过对于笔者来说Querydsl带来的并不仅仅是使用上的方便,更是对查询理念上的一个改观,同时也是对目前各种ORM框架查询语言的一个升华吧。可能每个ORM框架无论是Hibernate还是EJB或者JDO都有着自己的一套查语言和语法的解析,笔者也觉得他们做的足够好,但如果想使用相同的语法风格在不同的ORM框架上进行操作呢?或者Querydsl会给出我们一个更好的解决方案吧。

想了解更多关于Querydsl的内用可以去官方网址看看,官方的文档还是很不错的说。

from:http://xiexiejiao.cn/java/querydsl-1-9-5-release-download.html

这里有一篇Querydsl使用的例子:http://blog.csdn.net/liuchuanhong1/article/details/70244261?utm_source=gold_browser_extension

java 通用查询框架Querydsl 简介的更多相关文章

  1. java日志框架系列(1):slf4j框架简介及依赖

    1.slf4j日志框架 1.简介 slf4j只是是日志规范,即只定义了接口,并没有实现这些接口. SLF4J的全称是Simple Logging Facade for Java,即简单日志门面.SLF ...

  2. 深入理解Java并发框架AQS系列(二):AQS框架简介及锁概念

    深入理解Java并发框架AQS系列(一):线程 深入理解Java并发框架AQS系列(二):AQS框架简介及锁概念 一.AQS框架简介 AQS诞生于Jdk1.5,在当时低效且功能单一的synchroni ...

  3. 更好的 java 重试框架 sisyphus 入门简介

    What is Sisyphus sisyphus 综合了 spring-retry 和 gauva-retrying 的优势,使用起来也非常灵活. 为什么选择这个名字 我觉得重试做的事情和西西弗斯很 ...

  4. JAVA 常用框架和工具

    集成开发工具(IDE):Eclipse.MyEclipse.Spring Tool Suite(STS).Intellij IDEA.NetBeans.JBuilder.JCreator JAVA服务 ...

  5. [java]序列化框架性能对比(kryo、hessian、java、protostuff)

    序列化框架性能对比(kryo.hessian.java.protostuff) 简介:   优点 缺点 Kryo 速度快,序列化后体积小 跨语言支持较复杂 Hessian 默认支持跨语言 较慢 Pro ...

  6. 读《架构探险——从零开始写Java Web框架》

    内容提要 <架构探险--从零开始写Java Web框架>首先从一个简单的 Web 应用开始,让读者学会如何使用 IDEA.Maven.Git 等开发工具搭建 Java Web 应用:接着通 ...

  7. 浅入深出之Java集合框架(中)

    Java中的集合框架(中) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到<浅入深出之Java集合框架 ...

  8. 浅入深出之Java集合框架(下)

    Java中的集合框架(下) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,哈哈这篇其实也还是基础,惊不惊喜意不意外 ̄▽ ̄ 写文真的好累,懒得写了.. ...

  9. Lucene:基于Java的全文检索引擎简介

    Lucene:基于Java的全文检索引擎简介 Lucene是一个基于Java的全文索引工具包. 基于Java的全文索引/检索引擎--Lucene Lucene不是一个完整的全文索引应用,而是是一个用J ...

随机推荐

  1. 1080 Graduate Admission (30)(30 分)

    It is said that in 2013, there were about 100 graduate schools ready to proceed over 40,000 applicat ...

  2. Trie 树内存消耗问题

    大家都知道,Trie树(又称字典树)是一种树型数据结构,用于保存大量的字符串.它的优点是:利用字符串的公共前缀来节约存储空间. 相对来说,Trie树是一种比较简单的数据结构,比较易于理解.话说上帝是公 ...

  3. BZOJ1568:[JSOI2008]Blue Mary开公司

    浅谈标记永久化:https://www.cnblogs.com/AKMer/p/10137227.html 题目传送门:https://www.lydsy.com/JudgeOnline/proble ...

  4. 最短路径 一 Dijkstra 模板(O(n^2))

    题目传送:http://hihocoder.com/problemset/problem/1081 #include<iostream> #include<cstdio> #i ...

  5. BOM——浏览器对象模型(Browser Object Model)

    什么是BOM? BOM是Browser Object Model的缩写,简称浏览器对象模型 BOM提供了独立于内容而与浏览器窗口进行交互的对象 由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对 ...

  6. Jasper-template

    ylbtech-Jasper: 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:http://ylbtech. ...

  7. JavaScript总结(1)

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  8. complexType

    //decltype的表达式如果是加上括号的变量,结果将是引用 decltype((variable)) ruiy; //此变量的数据类型是引用(但此处变量的申明语句是错误的,引用不是对象,指向的对象 ...

  9. MemoryStream转string

    MemoryStream rtfTx = new MemoryStream(); var bs = rtfTx.ToArray(); string s = Encoding.UTF8.GetStrin ...

  10. HDU - 6025 Coprime Sequence(gcd+前缀后缀)

    Do you know what is called ``Coprime Sequence''? That is a sequence consists of nnpositive integers, ...