我是靠谱客的博主 称心板凳,这篇文章主要介绍2.3.1.Spring 整合 JPA,现在分享给大家,希望可以做个参考。

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

applicationContext.xml:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<!-- 引入外部属性文件 --> <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:

复制代码
1
2
3
4
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内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部