我是靠谱客的博主 称心板凳,最近开发中收集的这篇文章主要介绍2.3.1.Spring 整合 JPA,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.配置EntityManagerFactory(类似与SessionFactory)和事务
原理:
使用Spring提供的LocalContainerEntityManagerFactoryBean来整合JPA,获取EntityManagerFactory;
事务通过JpaTransactionManager来管理,需要注入EntityManagerFactory

applicationContext.xml:


<!-- 引入外部属性文件 -->
<context:property-placeholder location="classpath:db.properties" />
<!-- 连接池 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.user}" />
<property name="password" value="${jdbc.password}" />
</bean>
<!-- 实体管理工厂 -->
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<!-- 数据源 -->
<property name="dataSource" ref="dataSource" />
<!-- 扫描实体类 -->
<property name="packagesToScan" value="cn.itcast.bos.domain" />
<!—JPA供应商适配:数据库和方言 -->
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<!-- 数据库类型配置 -->
<property name="database" value="ORACLE" />
<!-- 是否自动生成DDL建表 -->
<property name="generateDdl" value="true" />
<!-- 配置dialect方言 -->
<property name="databasePlatform" value="org.hibernate.dialect.Oracle10gDialect"/>
<!-- 打印sql -->
<property name="showSql" value="true"/>
</bean>
</property>
<!-- 配置hibernate的其他属性 -->
<property name="jpaProperties">
<props>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
</bean>
<!-- 事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<!-- 注解驱动 -->
<tx:annotation-driven transaction-manager="transactionManager"/>

db.properties:

jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:xe
jdbc.user=test
jdbc.password=test

启动tomcat测试:看控制台

2.3.2.Spring Data JPA的Repository(DAO)编写
Springdatajpa整合jpa(写dao接口+配置扫描—约定机制-它的整合相当于零配置)
Spring Data JPA的编程方式和以前不同。(无需写实现类,只需要写接口)
它的DAO(Repository)已经写好了默认的实现类,对于大部分通用功能,我们只需要提供接口即可使用。
使用方法:我们构建一个接口,继承如下的任意接口即可使用其内部提供的功能。
我们开发的方式是:自己的接口直接继承JpaRepository,如下:
提示:不需要写实现,因为SimpleJpaRepository已经帮你实现了(内置功能)。
测试:
一般我们在业务层进行测试。因此,编写业务层,编写业务方法进行测试:
【回顾】
之前的Spring注解开发,需要分别在DAO和Service上添加注解(@Repository和@Service),然后在Service中使用@Autowired注入DAO。
【现在】
当DAO被Spring Data管理后,在DAO上就无需添加@Repository注解(也无法添加,因为无实现类)。
如何让DAO被Spring Data管理?需要在applicationContext.xml中配置对DAO的扫描,该配置会自动扫描继承Repository接口的类,作为Spring的bean。而你之后要做的仅仅是在Service中注入DAO即可。

最后

以上就是称心板凳为你收集整理的2.3.1.Spring 整合 JPA的全部内容,希望文章能够帮你解决2.3.1.Spring 整合 JPA所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部