Dao层系列-6-Hibernate JPA Spring
2013-07-25 17:14
197 查看
这边主要是利用Spring对JPA的相关接口,重构上一篇的代码
完整代码请参考:https://git.oschina.net/yaolifei/test/tree/master/test-hibernate-jpa-spring
applicationContext.xml
完整代码请参考:https://git.oschina.net/yaolifei/test/tree/master/test-hibernate-jpa-spring
applicationContext.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:util="http://www.springframework.org/schema/util" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <context:component-scan base-package="com.yaolifei.test" /> <context:property-placeholder location="jdbc.properties" /> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="driverClassName" value="${jdbc.driverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value= "${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <property name="maxActive" value="${jdbc.maxActive}" /> <property name="validationQuery" value="${jdbc.validationQuery}" /> </bean> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="packagesToScan" value="com.yaolifei.test" /> <property name="jpaVendorAdapter"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" /> </property> <property name="jpaProperties"> <props> <prop key="hibernate.hbm2ddl.auto">update</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</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" /> <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" /> </beans>UserDaoImpl.java
package com.yaolifei.test.user.dao; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; import com.yaolifei.test.user.domain.User; @Repository("userDao") @Transactional public class UserDaoImpl implements UserDao { @PersistenceContext private EntityManager entityManager; @Override public User getById(Integer id) { User user = entityManager.find(User.class, id); return user; } @Override public List<User> getAll() { Query query = entityManager.createQuery("from User"); List<User> list = query.getResultList(); return list; } @Override public void save(User user) { entityManager.persist(user); } @Override public void update(User user) { entityManager.merge(user); } @Override public void remove(User user) { entityManager.remove(user); } }是不是简洁了许多,所有的事务都通过Spring来管理,不用每次操作都手动的打开关闭了
相关文章推荐
- Dao层系列-7-Hibernate Spring Data JPA
- Dao层系列-3-Hibernate Spring Intergration
- Dao层系列-4-Hibernate Spring Annotation
- 深入学习spring-boot系列(二)--使用spring-data-jpa
- SpringBoot+JPA(Hibernate)事物手动控制
- 从零开始学Spring Boot(3)——JPA - Hibernate
- SpringData Jpa、Hibernate、Jpa 三者之间的关系
- hibernate、springdatajpa等对于相同列的处理
- [原]Java web学习系列之 Java web开发中的SSH整合(Struts、Spring、Hibernate)(上)
- 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(二):进一步消除 hibernate.cfg.xml
- 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(六): 一些常用的数据库 注解
- Spring Boot 系列(九)数据层-集成Spring-data-jpa
- SpringBoot+spring-date-jpa+Hibernate 整合mysql 与sqlserver 配置文件信息
- add more columns in join table using spring, hibernate, JPA Annotations
- Spring3+Hibernate3(Jpa) 配置多个数据源的解决方案(基于注解)
- SpringMVC+Apache Shiro+JPA(hibernate)案例教学(四)基于Shiro验证用户权限,且给用户授权
- 在 JPA、Hibernate 和 Spring 中配置 Ehcache 缓存
- EasyJWeb+JPA(Hibernate3.2)+Spring2构架缓存技术
- Spring ORM+Hibernate?Out!换 Spring Data JPA
- Spring2.5+Struts1.3.8+JPA(Hibernate实现)整合之五