QueryDSL介绍

· QueryDSL仅仅是一个通用的查询框架,专注于通过Java API构建类型安全的SQL查询。

· Querydsl可以通过一组通用的查询API为用户构建出适合不同类型ORM框架或者是SQL的查询语句,也就是说QueryDSL是基于各种ORM框架以及SQL之上的一个通用的查询框架。

借助QueryDSL可以在任何支持的ORM框架或者SQL平台上以一种通用的API方式来构建查询。目前QueryDSL支持的平台包括 JPA,JDO,SQL,Java Collections,RDF,Lucene,Hibernate SearchMONGODB

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

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

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

org.springframework.dataspring-data-jdbc-core1.0.0.RELEASE

第二步 spring-jdbc.xml加入

   

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

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

@QuerySupertype 在父类用

@QueryEntity 在类上用

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

1.jdbc普通的方式

com.mysema.maven

                                apt-maven-plugin

                                1.0.8

                                

                                        

                                                com.mysema.querydsl

                                                querydsl-apt

                                                ${querydsl.version}

                                        

                                

                                

                                        

                                                generate-sources

                                                

                                                        process

                                                

                                                

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

                                                        com.mysema.query.apt.QuerydslAnnotationProcessor

                                                

                                        

                                

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

HIBERNATE

 

      com.mysema.maven

      maven-apt-plugin

      0.3.2

      

        

          

            process

          

          

            target/generated-sources/java

             com.mysema.query.apt.hibernate.HibernateAnnotationProcessor

          

        

      

    

JPA

 

      com.mysema.maven

      maven-apt-plugin

      0.3.2

      

        

          

            process

          

          

            target/generated-sources/java

            com.mysema.query.apt.jpa.JPAAnnotationProcessor

          

        

      

    

mongodb

      com.mysema.maven

      maven-apt-plugin

      1.0

      

        

          

            process

          

          

            ${generatedSources}

            com.mysema.query.mongodb.morphia.MorphiaAnnotationProcessor

          

        

      

    

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

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

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使用教程篇章

 

你可能感兴趣的:(java配置文件)