- 浏览: 400048 次
- 性别:
- 来自: 昆明
文章分类
- 全部博客 (198)
- java (28)
- J2EE (19)
- struts (33)
- sping (13)
- hibernate (18)
- mybatis (15)
- connection pool (3)
- DB (26)
- SQL (21)
- html (13)
- js (7)
- json (3)
- jquery (2)
- document (17)
- linux (15)
- C# (1)
- url (2)
- eweb4j (1)
- Turbine (1)
- 框架 (11)
- jdbcTemplate (3)
- aop (2)
- windows (2)
- ubuntu (1)
- eclipse (11)
- JPA (8)
- svn (4)
- get 传值 (2)
- mysql (5)
- oracle (2)
- hadoop (1)
- MongoDB (2)
- spring (1)
- python (1)
最新评论
-
jcbingjc:
楼主,你好,按照上面的配置,我报如下错误:Missing Pe ...
[properJavaRDP]在网页中实现远程连接 -
sucful:
折腾了半天跑不通 ,要传就搞个完整的吧
Struts2 <sx:div/>实现页面模块异步刷新 -
Kattou:
你好! 看了你写的这个分页 感觉很好, 但是不怎么会用么,请指 ...
jsp分页控件 -
我叫PSB:
地址完全用不了
eclipse中的安装 jseclipse -
1111emotion:
我的工程里还是有乱码的情况,我该改的地方都改了。
Eclipse/MyEclipse更改默认字符集 设置UTF-8
一直觉得JPA很神秘,最近抽空看了下,下面贴出刚才做的Struts2整合Spring、JPA的例子。给自己的编程路留下新的脚印!
1. 打开MyEclipse新建Web project :testJpa
2. 导入相关的Jar包
3. 在src下新建META-INF文件夹
4. 在META-INF下添加persistence.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<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_1_0.xsd" version="1.0">
<persistence-unit name="punit"></persistence-unit>
</persistence>
5. 在src下新建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:aop="http://www.springframework.org/schema/aop"
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.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
<!-- 配置Jpa -->
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="jpaVendorAdapter">
<bean
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="database" value="MYSQL" />
<property name="showSql" value="true" />
</bean>
</property>
<!-- 根据实体Bean自动生成表 -->
<property name="jpaProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">update</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/testjpa" />
<property name="username" value="root" />
<property name="password" value="root" />
</bean>
<!-- 配置事务 -->
<bean id="transactionManager"
class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory"
ref="entityManagerFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
</beans>
6. 修改web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
7. 新建实体com.njy.model.Person.java
package com.njy.model;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Person implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String name;
private int age;
private String address;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
8. 编写Service接口:com.njy. serviceImpl.PersonService.java
package com.njy.service;
import java.util.List;
import com.njy.model.Person;
public interface PersonService {
public void save(Person person);
public void delete(Person person);
public void update(Person person);
public Person getById(Person person);
public List<Person> getAll();
}
9. Service的实现类:com.njy. serviceImpl. PersonServiceImpl.java
package com.njy.serviceImpl;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.springframework.transaction.annotation.Transactional;
import com.njy.model.Person;
import com.njy.service.PersonService;
@Transactional
public class PersonServiceImpl implements PersonService {
private EntityManager entityManager;
public void delete(Person person) {
//person = entityManager.find(Person.class, person.getId());
person = entityManager.getReference(Person.class, person.getId());
entityManager.remove(person);
}
@SuppressWarnings("unchecked")
public List<Person> getAll() {
Query query = getEntityManager().createQuery("select p FROM Person p");
return query.getResultList();
}
public Person getById(Person person) {
return entityManager.find(Person.class, person.getId());
}
public void save(Person person) {
entityManager.persist(person);
}
public void update(Person person) {
entityManager.merge(person);
}
public EntityManager getEntityManager() {
return entityManager;
}
@PersistenceContext
public void setEntityManager(EntityManager entityManager) {
this.entityManager = entityManager;
}
}
10. 在applicationContext.xml中加入Service的配置:
<!-- 配置Service -->
<bean id="PersonService" class="com.njy.serviceImpl.PersonServiceImpl"
scope="prototype">
</bean>
11. 在src下创建com.njy.action.Person.java
package com.njy.action;
import java.util.List;
import com.njy.model.Person;
import com.njy.service.PersonService;
public class PersonAction {
private static final long serialVersionUID = 1L;
private PersonService personService;
private Person person;
private List<Person> listPerson;
public String save() {
personService.save(person);
return "toShowList";
}
public String delete() {
personService.delete(person);
return "toShowList";
}
public String update() {
personService.update(person);
return "toShowList";
}
public String getById() {
person = personService.getById(person);
return "toEdit";
}
public String getAll() {
listPerson = personService.getAll();
return "toList";
}
public PersonService getPersonService() {
return personService;
}
public void setPersonService(PersonService personService) {
this.personService = personService;
}
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
public List<Person> getListPerson() {
return listPerson;
}
public void setListPerson(List<Person> listPerson) {
this.listPerson = listPerson;
}
}
12. 在src下新建struts.xml文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.objectFactory" value="spring"></constant>
<constant name="struts.i18n.encoding" value="UTF-8"></constant>
<package name="PersonAction" extends="struts-default">
<action name="person_*" method="{1}" class="personAction">
<result name="toShowList" type="redirect">
person_getAll.action
</result>
<result name="toList">/list.jsp</result>
<result name="toEdit">/edit.jsp</result>
</action>
</package>
</struts>
13. 在applicationContext.xml中加入Action和Service的配置:
<!-- 配置Action -->
<bean id="personAction" class="com.njy.action.PersonAction" scope="prototype">
<property name="personService">
<ref bean="PersonService" />
</property>
</bean>
14. 新建数据库testJpa,如果此处不建该库,程序会抛错,之后发布并运行程序。
15. View部分
既然是改写,这里我们依然采用之前的CRUD程序页面,详细代码请参看程序源代码,程序运行效果图如下所示:
【操作1:添加信息】
单击“添加”按钮,程序将转到列表页:
【操作2:修改信息】
修改后的列表页面:
【操作3:删除信息】
删除编号为1的记录,删除之后程序转到列表页:
程序源码的jar包在附件中,因附件大小有限制,故分成两个压缩包!请自行下载!
- testJpa.rar (13.5 KB)
- 下载次数: 219
- lib1.rar (7.9 MB)
- 下载次数: 1345
- lib2.rar (7.7 MB)
- 下载次数: 1388
出自:http://xiaopihai.iteye.com/blog/403437
发表评论
-
SpringMvc+MyBatis+Freemarker 配置
2017-04-06 09:32 23731、引入Jar包: spring所有jar文件 my ... -
Struts2.1.8升级到Struts2.3.15.1的时候遇到了问题
2013-08-09 10:14 2013我把原来的Struts2.1.8升级到Struts2.3. ... -
struts2 url传值中文乱码解决方案
2012-09-21 16:21 1420HttpServletRequest request = Ac ... -
使用struts2中的ognl表达式调用类方法
2012-04-19 09:35 1368struts标签中value都会被解析,如,<s:pro ... -
使用struts2中的ognl表达式调用类方法(转)
2012-04-15 16:54 1286struts标签中value都会被解析,如,<s:pro ... -
Struts2 get 传值乱码过滤器配置
2012-04-15 16:31 1377package cn.org.du.Encode; im ... -
struts2 url传值中文乱码解决方案
2012-04-15 15:51 1515HttpServletRequest request ... -
Hibernate one-to-many 属性设置
2012-03-26 16:49 1314使用Hibernate提供的one-to-many来实现 ... -
struts2 result type 介绍
2012-03-23 09:14 1167在默认时,<result>标签的type属性值是“ ... -
jpa 表生成器 GenerationType.TABLE.
2012-03-15 17:38 4434将当前主键的值单独保存到一个数据库的表中,主键的值每次都是从指 ... -
cannot simultaneously fetch multiple bags异常的解决
2012-03-15 16:18 2418原文来自于http://howsun.bl ... -
JPA 实现继承关系
2012-03-15 03:14 3378JPA支持继承关系,使开发者可以利用继承的思想建模。 ... -
EntityManager
2012-03-13 14:23 1231EntityManager ma ... -
Struts2中<jsp:forward page="xxx.action"></jsp:forward>失效
2012-03-08 17:43 1957问题:在Struts2中<jsp:forward pag ... -
EJB3 JPA JPQL 语句 查询 使用 函数 分页 子查询(2)
2012-03-03 16:50 1741关联(join) JPQL仍然支持和SQL中类似的 ... -
JPA查询语言之EJBQL+JPQL
2011-11-30 13:30 5068简单查询 返回所有Topic对象的记录: SELECT ... -
spring mvc 配置
2011-11-28 14:14 14371、/WEB-INF/web.xml <ser ... -
spring jdbcTemplate调用存储过程
2011-11-27 21:36 1465第一种方式: List<Map<String,Ob ... -
spring3之JdbcTemplate AOP 事务
2011-11-27 01:36 7460一、applicationContext.xml配置:定义事务 ... -
Spring AOP代理时 ClassCastException: $Proxy0 cannot be cast to (类型转换错误)
2011-11-27 01:37 1483Spring AOP代理时 ClassCastExce ...
相关推荐
4. **整合Struts2、Spring和JPA**:在Action类中,通过Spring的@Autowired注解,可以直接注入需要的Service层对象,这些Service对象再通过JPA的EntityManager进行数据库操作。这样,请求处理(Struts2)、业务逻辑...
在这个"Struts2+Spring+JPA实例"中,我们首先会看到如何将这三个框架整合在一起。整合的核心在于配置,通常需要在Struts2的配置文件(struts.xml)中定义Action类,这些类通常由Spring管理。Spring的配置文件(spring....
在学习jpa时候做的一个struts2+spring+jpa整合的完整例子 包含分页,一个简单的 资产入库系统 并实现了登陆等。
在Struts2中整合Spring,主要目的是利用Spring的DI特性管理Struts2中的Action类。首先,需要在Struts2的配置文件(struts.xml)中添加Spring插件的配置,启用Spring插件支持。然后,Action类可以声明为Spring容器的...
这个"struts2_spring_jpa"的整合案例旨在帮助开发者理解如何将这三个框架无缝集成,以构建高效、可维护的Web应用程序。 Struts2是一个强大的MVC(Model-View-Controller)框架,它提供了处理用户请求、控制应用程序...
struts2_spring_jpa整合实例实现数据添加
**Struts2、JPA与Spring的整合** 在企业级Java开发中,Struts2、JPA(Java Persistence API)和Spring框架的整合是常见的技术栈选择,它们各自扮演着不同的角色,共同构建出强大的MVC(Model-View-Controller)架构...
在整合Struts2时,我们需要配置Spring的`spring-beans.jar`、`spring-context.jar`等,通过Spring的ApplicationContext加载bean,并将这些bean注入到Struts2的Action中,以实现业务逻辑的解耦。同时,Spring还提供了...
在提供的文件中,`Spring+Struts2+Jpa.ppt`可能是整合的讲解或教程,包含详细步骤和注意事项。`applicationContext.xml`是Spring的配置文件,其中会定义bean,包括DataSource、SessionFactory、TransactionManager等...
通过以上步骤,你就能完成一个基本的JPA+Spring+Struts整合应用。这种整合方式能充分利用每个框架的优点,提高代码的可维护性和可扩展性,降低开发复杂度。在实际项目中,你可能还需要考虑异常处理、安全控制、性能...
**Spring+Struts2+JPA 整合详解** 在Java Web开发中,Spring、Struts2和JPA是三个非常重要的框架。Spring作为一个全面的轻量级框架,提供了依赖注入(DI)和面向切面编程(AOP)等功能;Struts2是一个强大的MVC框架...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自在应用程序的不同层面发挥着重要作用。Struts2作为MVC(模型-视图-控制器)框架,负责处理请求和展示视图;Spring是一个全面的后端解决方案,提供...
Struts2、Spring和JPA(Hibernate)是Java Web开发中的三大核心框架,它们共同构建了一个强大、灵活且可扩展的后端系统。这个压缩包包含的jar文件是这三个框架协同工作所需的基础库。 首先,Struts2是一个基于MVC...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们的整合(SSH)极大地提升了开发效率和项目的可维护性。下面将详细讲解这三大框架的核心功能以及整合过程中的关键知识点。 1. **Struts2**:Struts2是一...
Struts2、Spring 和 JPA 是Java开发中常用的三大框架,它们各自负责应用程序的不同层面:Struts2 主要处理 MVC(Model-View-Controller)架构中的控制层,Spring 提供全面的依赖注入(DI)以及面向切面编程(AOP),...
整合Struts2、Spring和JPA,可以实现MVC架构的完整流程:Struts2负责接收用户请求,通过Action处理业务逻辑,Spring管理这些Action对象以及数据访问层,JPA则处理与数据库的交互。这样的组合提供了良好的分层结构,...
Struts2+Spring+JPA网上商城是一个典型的Java Web应用程序架构,它整合了三个主流的开源框架,用于构建高效、可扩展的电子商务平台。在这个项目中,Struts2作为前端控制器,Spring作为整体的应用框架,而JPA(Java ...