Spring Data JPA applicationContext.xml的配置文件

Spring Data JPA的概述

  1. 概述:是Dao层的解决方案,出现的目的是简化JPA的开发。

  2. 想使用JPA的话,需要添加坐标依赖,项目中已经引入了。

     <dependency>
     	<groupId>org.springframework.data</groupId>
     	<artifactId>spring-data-jpa</artifactId>
     	<version>1.9.0.RELEASE</version>
     </dependency>
    
    1. applicationContext.xml的配置文件,查看JPA相关的配置

       <!-- 1.dataSource-->
       <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
       	<property name="driverClass" value="oracle.jdbc.driver.OracleDriver" />
       	<property name="jdbcUrl" value="jdbc:oracle:thin:@192.168.198.130:1521:orcl" />
       	<property name="user" value="itcast297" />
       	<property name="password" value="itcast297" />
       </bean>
       Spring JPA 配置
       <bean id="entityManagerFactory"
       	class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
       	引人c3p0数据源
       	<property name="dataSource" ref="dataSource" />
       	扫描cn.itcast.domain 下所有的实体类
       	<property name="packagesToScan" value="cn.itcast.domain" />
       	提供者 是指使用什么框架
       	<property name="persistenceProvider">
       		<bean class="org.hibernate.jpa.HibernatePersistenceProvider" />
       	</property>
       	<!--JPA的供应商适配器-->
       	<property name="jpaVendorAdapter">
       		配置数据库、数据库的方言 需要配置一些东西  
       		<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
       			根据实体类是否生成表   false不需要 true需要
       			<property name="generateDdl" value="false" />
       			指定使用什么数据库
       			<property name="database" value="ORACLE" />
       			数据库的方言
       			<property name="databasePlatform" value="org.hibernate.dialect.Oracle10gDialect" />
       			是否中控制台打印sql语句
       			<property name="showSql" value="true" />
       		</bean>
       	</property>
       	提供者的方言
       	<property name="jpaDialect">
       		<bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" />
       	</property>
       	<property name="jpaPropertyMap">
       		<map>
       			<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.enable_lazy_load_no_trans" value="true"></entry>
       			<entry key="hibernate.generate_statistics" value="true" />
       			<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>
       
       <!-- JdbcTemplate配置 -->
       <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
            <property name="dataSource" ref="dataSource"></property>
       </bean>
       
       <!-- 告诉spring生成shiro代理子类时,采用cglib方式生成 -->
       <aop:aspectj-autoproxy proxy-target-class="true" />
       
       <!-- 3.事务管理器-->
       <!-- JPA事务管理器  -->
       <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
       	<property name="entityManagerFactory" ref="entityManagerFactory" />
       </bean>
       
       	<!-- 整合spring data jpa  :只对dao接口 方法增强   -->
       <jpa:repositories base-package="cn.itcast.dao"
       	transaction-manager-ref="transactionManager"
       	entity-manager-factory-ref="entityManagerFactory"></jpa:repositories>
      
       <!-- 4.txAdvice-->
       <tx:advice id="txAdvice" transaction-manager="transactionManager">
       	<tx:attributes>
       		<tx:method name="save*" propagation="REQUIRED"/>
       		<tx:method name="insert*" propagation="REQUIRED"/>
       		<tx:method name="update*" propagation="REQUIRED"/>
       		<tx:method name="delete*" propagation="REQUIRED"/>
       		
       		<tx:method name="get*" read-only="true"/>
       		<tx:method name="find*" read-only="true"/>
       		<tx:method name="*" propagation="REQUIRED"/>
       	</tx:attributes>
       </tx:advice>
       
       <!-- 5.aop-->
       <aop:config>
       	<aop:pointcut id="pointcut" expression="execution(* cn.itcast.service.*.*(..))" />
       	<aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut" />
       </aop:config>
       
       <context:component-scan base-package="cn.itcast"></context:component-scan>
      

编写DeptDao接口及其实现类**

1. 创建DeptDao的接口,继承JpaRepository<Dept, String>,JpaSpecificationExecutor<Dept>接口即可,增删改查所有的方法全部都提供了,不用编写实现类。
2. 代码如下:
	public interface DeptDao extends JpaRepository<Dept, String>,JpaSpecificationExecutor<Dept>

猜你喜欢

转载自blog.csdn.net/shishize55/article/details/83592302