`

spring JPA struts 整合开发(1) - spring集成JPA

阅读更多
一. spring JPA struts 整合开发(1) - spring集成JPA
二. spring JPA struts 整合开发(2) - spring集成struts


这里的JPA实现是hibernate。

1. 在IDE中新建一个web工程,Resource设置成utf-8

2. 导入以下的jar包到/WEB-INF/lib目录下:

Hibernate 3安装包下的:
hibernate3.jar
lib\required\*.jar
lib\test\slf4j-log4j12.jar

spring 2.5 安装包下的:
dist\spring.jar
dist\modules\spring-webmvc-struts.jar
lib\jakarta-commons\common-logging.jar commons-dbcp.jar commons-pool.jar
lib\aspectj\aspectjweaver.jar aspectjrt.jar
lib\cglib\cglib-nodep-2.1_3.jar
lib\j2ee\common-annotations.jar
lib\log4j\log4j-1.2.15.jar

下载struts-1.3.8-lib.zip,解压目录下的所有jar

3. spring配置文件:

拷贝一个beans.xml的模板到src目录下,

beans.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:tx="http://www.springframework.org/schema/tx"
	   xsi:schemaLocation="http://www.springframework.org/schema/beans
	   	http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"
         >
	<context:annotation-config/>

	<!-- JPA entity manager factory bean, like the session factory of hibernate -->
	<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
		<!-- Retrieved the persistence information from persistence.xml -->
		<property name="persistenceUnitName" value="sparkle" />
	</bean>

	<!-- Transaction manager -->
	<bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager">
		<property name="entityManagerFactory" ref="entityManagerFactory" />
	</bean>
	
	<tx:annotation-driven transaction-manager="txManager"/>
</beans>


4. JPA配置文件

在src目录下创建META-INF子目录并新建persistence.xml文件:

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
	version="2.0">
	<persistence-unit name="sparkle" transaction-type="RESOURCE_LOCAL">
		<properties>
			<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
 			<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8"/>
			<property name="hibernate.connection.username" value="root"/>
			<property name="hibernate.connection.password" value="123456"/>
			<property name="hibernate.max_fetch_depth" value="3"/>
			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
			<property name="hibernate.hbm2ddl.auto" value="update"/>
			<property name="hibernate.show_sql" value="true"/>
		</properties>
	</persistence-unit>	
</persistence>


5. 实体bean

创建com.john.bean.Person类

// It is recommended to let the bean implement Serializable interface and override equals and hashCode methods
@Entity
public class Person implements {
	private Integer id;
	private String name;
	public Person() { }
	public Person(String name) {
		this.name = name;
	}
	@Id @GeneratedValue
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	@Column(length=30, nullable=false)
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}


6. 业务bean

创建com.john.service.PersonServiceBean类

@Transactional
public class PersonSeriveBean {
	@PersistenceContext EntityManager em;
	
	public void save(Person person) {
		em.persist(person);
	}
	
	public void update(Person person) {
		em.merge(person);
	}
	
	public void delete(Integer id) {
		em.remove(em.getReference(Person.class, id));
	}
	
	@Transactional(propagation=Propagation.NOT_SUPPORTED, readOnly=true)
	public Person getPerson(Integer id) {
		return em.find(Person.class, id);
	}
	
	@Override
	@Transactional(propagation=Propagation.NOT_SUPPORTED, readOnly=true)
	public List<Person> getPersons() {
		return em.createQuery("select p FROM Person p").getResultList();
	}


抽取PersonService接口。

7. junit test

新建junit.test.PersonServiceTest测试类:

public class PersonServiceTest {
	private static PersonService personService;

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
		try {
			AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
			personService = (PersonService)ctx.getBean("personService");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	@Test
	public void testSave() {
		personService.save(new Person("John"));
	}

	// Other test methods are omitted
}


整理自:传智播客spring教程
分享到:
评论

相关推荐

    Struts2整合Spring、JPA

    Struts2整合Spring和JPA是企业级Java应用开发中常见的技术组合,它们分别负责不同的职责:Struts2作为一款成熟的MVC框架,主要用于处理Web层的请求与响应;Spring作为一个全面的轻量级框架,提供了依赖注入(DI)和...

    JPA+Spring+Struts整合实例,JPA+Spring+Struts整合实例

    在Java Web开发领域,JPA(Java Persistence API)、Spring框架和Struts框架的整合是常见的技术栈,它们各自扮演着不同的角色,共同构建出高效、灵活的Web应用程序。下面将详细介绍这三个关键技术及其整合过程。 **...

    struts-2.2.1 spring-3.0.4 hibernate-3.6.0 JPA整合

    总之,这个整合项目为学习者提供了一个基础的SSH(Struts2 + Spring + Hibernate)和JPA的集成示例,有助于理解这些框架如何协同工作,为更复杂的Java Web应用程序开发打下基础。通过逐步研究和实践,开发者可以深入...

    hibernate+spring+struts整合开发jar文件

    "hibernate+spring+struts整合开发jar文件"提供了这些框架所需的库文件,帮助开发者快速搭建开发环境,避免了因版本不兼容或缺失jar文件导致的问题。 1. Hibernate:作为Java领域的一个ORM(Object-Relational ...

    Struts2 Spring Jpa 配置测试

    Struts2、Spring和JPA是Java开发中常用的三大框架,它们在企业级应用开发中发挥着关键作用。Struts2作为MVC框架,负责控制应用程序的流程;Spring框架则是一个全面的后端解决方案,提供了依赖注入(DI)、面向切面...

    Spring+Struts2+JPA

    **Spring+Struts2+JPA 整合详解** 在Java Web开发中,Spring、Struts2和JPA是三个非常重要的框架。Spring作为一个全面的轻量级框架,提供了依赖注入(DI)和面向切面编程(AOP)等功能;Struts2是一个强大的MVC框架...

    struts2-hibernate3-spring整合需要的全部jar包

    Struts2、Hibernate3和Spring是Java开发中常用的三大框架,它们各自负责不同的职责:Struts2用于控制应用程序的流程,Hibernate3则是优秀的对象关系映射(ORM)框架,Spring则提供全面的依赖注入(DI)和面向切面...

    spring+struts+mysql-conn

    在"spring+struts+mysql-conn"项目中,MySQL是数据存储和管理的关键组件,Spring可能通过JDBC或JPA来与之交互,实现数据的增删改查操作。 项目中的"jar包整理"标签暗示了这个压缩包可能包含了这三者集成所需的库...

    Struts2+JPA+Spring整合(PPT)

    在企业级Java开发中,Struts2、JPA(Java Persistence API)和Spring框架的整合是常见的技术栈选择,它们各自扮演着不同的角色,共同构建出强大的MVC(Model-View-Controller)架构应用。Struts2作为表现层框架,...

    Struts2,spring2.5与jpa的整合示例

    Struts2、Spring2.5和JPA的整合提供了强大的Web应用开发能力,涵盖了MVC、依赖注入、事务管理和ORM等功能。结合Spring Security进行权限管理,可以确保系统的安全性。这样的整合方案在大型企业级项目中非常常见,有...

    struts jpa spring 整合(源代码)

    Struts、JPA和Spring是Java开发中三个非常重要的框架,它们各自负责应用程序的不同层面:Struts用于控制层,Spring提供了全面的框架支持,包括依赖注入和面向切面编程,而JPA则是Java持久化规范,用于管理数据库操作...

    spring.jar spring-webmvc-struts.jar spring-webmvc.jar

    4. **Struts集成**:如果使用了spring-webmvc-struts.jar,需要了解如何在Struts和Spring之间进行交互,如使用Spring的Bean管理Struts的动作(Action)类。 5. **Web开发**:掌握如何创建RESTful API,处理HTTP请求...

    JPA+Spring+Struts整合实例

    **JPA+Spring+Struts整合实例** 在Java企业级应用开发中,Spring、Struts和JPA(Java Persistence API)是三个非常重要的框架。它们分别负责不同的职责:Spring作为一个全能型框架,提供了依赖注入(DI)和面向切面...

    spring-ssj.rar_spring_spring+Struts2+jpa集成

    Spring、Struts2和JPA是Java开发中常用的三大框架,它们各自负责应用程序的不同层面:Spring作为基础架构框架,提供依赖注入(DI)和面向切面编程(AOP)等功能;Struts2是一个用于构建MVC(Model-View-Controller)...

    struts2_spring_jpa整合实例

    struts2_spring_jpa整合实例实现数据添加

    Spring+JPA+Struts1的整合

    "Spring+JPA+Struts1的整合"就是一个典型的示例,它将三个强大的Java技术结合在一起,用于开发企业级Web应用。下面我们将深入探讨这三个组件以及它们如何协同工作。 **Spring框架** Spring是一个全面的企业级应用...

    Jpa+Spring+Struts集成步骤详解

    在Java Web开发中,JPA(Java Persistence API)、Spring框架和Struts框架是常见的三大组件,它们分别负责数据持久化、依赖注入与控制层管理。将这三个组件集成在一起可以构建出高效、稳定的企业级应用。下面,我们...

    Struts+Spring+Jpa(hibernate)整合

    "Struts+Spring+Jpa(hibernate)整合"这个主题意味着我们要将这三个框架进行集成,以实现更强大的功能。在实际项目中,这种整合能够帮助开发者更好地管理业务逻辑、持久化数据以及处理用户请求。 1. **Struts**:...

    struts2+spring+jpa整合的完整例子(含分页)

    在学习jpa时候做的一个struts2+spring+jpa整合的完整例子 包含分页,一个简单的 资产入库系统 并实现了登陆等。

    spring struts2 JPAspring struts2 JPA

    标题 "spring struts2 JPA" 暗示了我们讨论的主题是关于Spring框架、Struts2框架以及Java Persistence API(JPA)的整合应用。这些技术都是在企业级Java开发中广泛使用的,用于构建高效、可扩展的Web应用程序。 **...

Global site tag (gtag.js) - Google Analytics