使用:maven+Spring+jpa+Junit4
查询方式:SQL,JPQL查询,Specification多条件复杂查询
返回类型:list<POJO>,list<Stinrg>,list<Object>,Page<Object>
git源码地址:https://github.com/litblank/SpringFrame/tree/master/DEMO/SpringData_jpa
1. Pom.xml
<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 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.litblack</groupId> <artifactId>SpringData_jpa</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>SpringData_jpa Maven Webapp</name> <url>http://maven.apache.org</url> <properties> <spring.version>4.3.4.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- jpa --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>4.3.8.Final</version> <exclusions> <exclusion> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> </exclusion> </exclusions> </dependency> <!-- <dependency> <groupId>org.hibernate.javax.persistence</groupId> <artifactId>hibernate-jpa-2.0-api</artifactId> <version>1.0.1.Final</version> </dependency> --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>4.3.11.Final</version> <exclusions> <exclusion> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> </exclusion> </exclusions> </dependency> <!-- oracle --> <dependency> <groupId>ojdbc</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0.4</version> </dependency> <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> <!-- ali 数据源连接 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.31</version> </dependency><dependency> <groupId>javassist</groupId> <artifactId>javassist</artifactId> <version>3.12.1.GA</version> </dependency> <!-- Test --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${spring.version}</version> </dependency> <!-- springdata --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-jpa</artifactId> <version>1.11.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-commons-core</artifactId> <version>1.4.1.RELEASE</version> </dependency></dependencies>
<build>
<finalName>SpringData_jpa</finalName>
</build>
</project>
2. Spring-config.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p" xmlns:cache="http://www.springframework.org/schema/cache" xmlns:jpa="http://www.springframework.org/schema/data/jpa"xsi:schemaLocation</span>="http://www.springframework.org/schema/beans http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/beans/spring-beans-3.1.xsd </span> http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/context </span> http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/context/spring-context-3.1.xsd </span> http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/aop </span> http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/aop/spring-aop-3.1.xsd </span> http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/tx </span> http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/tx/spring-tx-3.1.xsd</span> http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/cache </span> http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/cache/spring-cache-3.1.xsd</span> http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/data/jpa</span> http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/data/jpa/spring-jpa.xsd</span> http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/data/repository</span> http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/data/repository/spring-repository-1.5.xsd"> </span> <context:component-scan base-<span style="color: #0000ff;">package</span>="com.litblack.jpa"></context:component-scan> <!-- 配置Spring Data JPA扫描目录, repository 包 --> <jpa:repositories base-<span style="color: #0000ff;">package</span>="com.litblack.jpa" /> <!-- 定义实体管理器工厂 --> <bean > <property name="dataSource" ref="dataSource" /> <!-- 扫描pojo --> <property name="packagesToScan" value="com.litblack.jpa" /> <property name="persistenceProvider"> <bean <span style="color: #0000ff;">class</span>="org.hibernate.ejb.HibernatePersistence" /> </property> <property name="jpaVendorAdapter"> <bean <span style="color: #0000ff;">class</span>="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> <property name="generateDdl" value="true" /> <property name="database" value="MYSQL" /> <!-- <property name="database" value="ORACLE" /> --> <!-- <property name="databasePlatform" value="org.hibernate.dialect.MySQL5InnoDBDialect" /> --> <property name="showSql" value="true" /> </bean> </property> <property name="jpaDialect"> <bean <span style="color: #0000ff;">class</span>="org.springframework.orm.jpa.vendor.HibernateJpaDialect" /> </property> <property name="jpaPropertyMap"> <map> <entry key="hibernate.generate_statistics" value="false" /><!-- 关闭打印的日志 --> <entry key="hibernate.query.substitutions" value="true 1, false 0" /> <entry key="hibernate.default_batch_fetch_size" value="16" /> <entry key="hibernate.max_fetch_depth" value="2" /> <entry key="hibernate.bytecode.use_reflection_optimizer" value="true" /> <entry key="hibernate.cache.use_second_level_cache" value="false" /> <entry key="hibernate.cache.use_query_cache" value="false" /> </map> </property> </bean> <!-- 数据源 --> <bean > <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/cyd?useUnicode=true&amp;characterEncoding=UTF-8" /> <property name="username" value="root" /> <property name="password" value="root" /> </bean> <!-- 配置事务管理器 --> <bean > <property name="entityManagerFactory" ref="entityManagerFactory" /> </bean> <!-- 启用 annotation事务 --> <tx:annotation-driven transaction-manager="transactionManager" /></beans>