Spring 3.2 JPA2.0 XML 配置方式
2014-08-11 17:06
495 查看
使用maven工程,pom.xml文件如下
dao接口如下:
dao实现类如下:
service 接口:
service 实现类:
实体类:
spring-config.xml 其中task相关内容可以删除
测试类:
运行Junit测试就可以了。连接的是MySQL数据库.
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>3.2.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>3.2.4.RELEASE</version> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>1.8.5</version> </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-core</artifactId> <version>4.2.8.Final</version> </dependency> <!-- for JPA, use hibernate-entitymanager instead of hibernate-core --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>4.2.8.Final</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.27</version> </dependency> <!-- <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>3.0</version> </dependency>--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>3.2.4.RELEASE</version> <scope>test</scope> </dependency> </dependencies>
dao接口如下:
package cn.test.dao; /** * Created by libo on 13-12-19. */ public interface IDao { void save(Object entity); }
dao实现类如下:
package cn.test.dao; import org.springframework.stereotype.Component; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; /** * Created by libo on 13-12-19. */ @Component public class DaoJpaImpl implements IDao { @PersistenceContext private EntityManager entityManager; @Override public void save(Object entity) { entityManager.persist(entity); } }
service 接口:
package cn.test.service; import cn.test.entity.User; /** * Created by libo on 13-12-19. */ public interface UserService { void save(User user); }
service 实现类:
package cn.test.service; import cn.test.dao.IDao; import cn.test.entity.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; /** * Created by libo on 13-12-19. */ @Service public class UserServiceImpl implements UserService { @Autowired private IDao iDao; @Override //@Transactional(propagation= Propagation.REQUIRED) @Transactional(readOnly = false) public void save(User user) { iDao.save(user); } }
实体类:
package cn.test.entity; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; import java.io.Serializable; /** * Created by libo on 13-12-19. */ @Entity @Table(name = "myUser") public class User implements Serializable{ @Id private String id; private String name; private int age; public String getId() { return id; } public void setId(String id) { this.id = id; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
spring-config.xml 其中task相关内容可以删除
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:task="http://www.springframework.org/schema/task" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd"> <context:annotation-config/> <context:component-scan base-package="cn.test"/> <task:annotation-driven/> <bean id="em" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="packagesToScan" value="cn.test.entity"/> <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.dialect">org.hibernate.dialect.MySQL5Dialect</prop> </props> </property> </bean> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/spring_jpa"/> <property name="username" value="root"/> <property name="password" value="123456"/> </bean> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="em"/> </bean> <!-- 可以使用@Transactional配置事务 --> <tx:annotation-driven transaction-manager="transactionManager"/> <bean id="persistenceExceptionTranslationPostProcessor" class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/> </beans>
测试类:
package cn.test.service; import cn.test.entity.User; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * Created by libo on 13-12-19. */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath:spring-config.xml") public class UserServiceImplTest { @Autowired private UserService userService; @Test public void testSave() throws Exception { User user = new User(); user.setId("u_id"); user.setName("u_name"); user.setAge(23); userService.save(user); } }
运行Junit测试就可以了。连接的是MySQL数据库.
相关文章推荐
- Spring3.2 中 Bean 定义之基于 XML 配置方式的源码解析
- Spring3.2 中 Bean 定义之基于 XML 配置方式的源码解析
- Spring3.2 中 Bean 定义之基于 XML 配置方式的源码解析
- JPA2.0和Spring的集成配置方式
- Spring3.2 中 Bean 定义之基于 XML 配置方式的源码解析
- Spring 3.1 + JPA 2.0 (Hibernate 4) + MySQL 配置 移走persistence.xml。
- Spring 3.1 + JPA 2.0 (Hibernate 4) + MySQL 配置
- Spring 2.0 中配置 JPA
- Spring 2.0 中配置 JPA
- 对比Spring 1.0与2.0的事务配置方式
- 对比Spring 1.0与2.0的事务配置方式(转)
- Spring Aop实现——Annotation方式(注解式)and Schema-based式(xml配置)
- Spring中加载XML配置文件的方式
- Spring 采用基于XML方式配置事务
- spring 中加载xml配置文件的方式
- spring+hibernate xml和注解方式配置事务
- spring aop的使用(注解方式以及基于xml配置方式)
- Spring中加载XML配置文件的方式
- spring中读取xml配置文件、获取bean的几种方式
- spring 中加载xml配置文件的方式