`
luanmad_java
  • 浏览: 16977 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Eclipse开发: Struts 2 + Spring 2 + JPA + AJAX

阅读更多

      [关键字: Struts 2 Spring 2 JPA AJAX]


Tomcat
    首先要安装好Tomcat,如果在安装的时候遇到任何问题,请查看Tomcat的安装指南
MySql
    安装并配置MySQL。创建一个名为“quickstart”的数据库,并运行下面脚本来创建“Person”表。后面在applicationContext.xml里,我们将使用"root"数据库用户名和密码,记得用你自己的数据库设置来替换它们。


CREATE TABLE 'quickstart'.'Person'
(  'id' INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
'firstName' VARCHAR(45) NOT NULL,
'lastName' VARCHAR(45) NOT NULL,
PRIMARY KEY('id'))ENGINE = InnoDB;

注:上面的DDL需要保存在文件中,然后在MySQL中导入。我直接复制然后在查询分析器中执行失败
创建Eclipse项目

    打开Eclipse,我是认真的,你必须打开Eclipse
    点击File -> New -> Project. 选择"Dynamic Web Project"并点击下一步(注:如果使用MyEclipse,这里不太一样)
    输入项目名,这里我使用"quickstart"。这个项目将要在Tomcat中运行,所以我们需要为它创建应用服务器配置
   
        在"Target Runtime"下面点击"New",选择"Apache Tomcat5.5"并点击下一步
        输入Tomcat的安装路径并选择一下已安装的JRE(需要1.5)
   
   
    现在你应该回到了项目创建向导,并且Tomcat是你的Target Runtime。点击下一步,选择"Dynamic Web Module"和"Java"facets,最后点"finish"。

(上面讲的都是Eclipse WTP中的配置,如果使用MyEclipse请自行修正)
库依赖关系
    你的项目应该包含"src","build"和"WebContent"目录。我们把所有必需的jar文件放在"/WebContent/WEB-INF/lib"目录下。请复制它们到${workspace}\quickstart\WebContent\WEB-INF\lib目录。jar文件名的版本号已经被去除了!


Jar From xwork.jar Struts 2 struts2-api.jar Struts 2 struts2-core.jar Struts 2 struts2-Spring-plugin.jar Struts 2 ognl.jar Struts 2 freemarker-2.3.4.jar Struts 2 mysql-connector-java.jar MySql JDBC Driver spring.jar Sping 2.0 antlr.jar Hibernate Core asm.jar Hibernate Core asm-attrs.jar Hibernate Core cglib.jar Hibernate Core dom4j.jar Hibernate Core jdbc2_0-stdext.jar Hibernate Core ehcache.jar Hibernate Core hibernate3.jar Hibernate Core xml-apis.jar Hibernate Core commons-collections.jar Hibernate Core ejb3-persistence.jar Hibernate Annotations jta.jar Hibernate Annotations hibernate-annotations.jar Hibernate Annotations hibernate-entitymanager.jar Hibernate Entity Manager javassist.jar Hibernate Entity Manager jboss-archive-browsing.jar Hibernate Entity Manager

右击项目点“刷新”,通知Eclipse我们加入了很多的jar文件。
我使用Struts2.0.6, Spring2.0.3, Hibernate3.2。struts2-api.jar找不到,没有也可以运行成功;Hibernate Annotations和Hibernate Entity Manager需要在Hibernate的主页上下载,不包括在Core里面;另外jta.jar和javassist.jar在Hibernate Tools里面,同样要下载;最后,上面列表并缺少一个包,因为Hibernate3.2对此有一点小小的修改,你需要把Hibernate Annotations里面的hibernate-commons-annotations.jar拷贝进来。
领域模型
我们的领域模型只有一个简单的"Person"类,它包含少量的实例变量。

    创建一个新类并命名为"Person",然后输入"quickstart.model"作为包名。
    添加"id"(int), "firstName"(String)和"lastName"(String)三个实例变量,并为它们加上setter/getter方法。
    为你的类加上"@Entity"annotation,给"id" 加上 "@Id"和"@GeneratedValue" 注解

你的类如下:

Person.java


package quickstart.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entitypublic
class Person
{
@Id
@GeneratedValue
private Integer id;
private String lastName;
private String firstName;
public String getFirstName()
{
return firstName;
}
public void setFirstName(String firstName)
{
this.firstName = firstName;
}
public String getLastName()
{
return lastName;
}
public void setLastName(String lastName)
{
this.lastName = lastName;
}
public Integer getId()
{
return id;
}
public void setId(Integer id)
{
this.id = id;
}
}

    @Entity让JPA服务Provider知道这个类可以被持久化。@Id标识"id"域为这个类的主键,@GeneratedValue使id域被提供者(Hibernate)自动生成。类和实例变量默认都被映射到同名的表和列上,详细情况请查看JPA文档。
Person service.
我们现在来写对"Person"对象进行CRUD操作的类。

    创建一个接口,命名为"PersonService",包名为"quickstart.service"


PersonService.java


package quickstart.service;
import java.util.List;
import quickstart.model.Person;
public interface PersonService
{
public List<Person> findAll();
public void save(Person person);
public void remove(int id);
public Person find(int id);
}

    2.  创建一个类,命名为"PersonServiceImpl",包名为"quickstart.service"

PersonServiceImpl.java

package quickstart.service;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.springframework.transaction.annotation.Transactional;
import quickstart.model.Person;
@Transactional
public class PersonServiceImpl implements PersonService {
private EntityManager em;
@PersistenceContext
public void setEntityManager(EntityManager em) {
this.em = em;
}
@SuppressWarnings("unchecked")
public List<Person> findAll() {
Query query = getEntityManager().createQuery("select p FROM Person p");
return query.getResultList();
}
public void save(Person person) {
if (person.getId() == null) {
// new            em.persist(person);
} else {
// update            em.merge(person);
}
}
public void remove(int id) {
Person person = find(id);
if (person != null) {
em.remove(person);
}
}
private EntityManager getEntityManager() {
return em;
}
public Person find(int id) {
return em.find(Person.class, id);
}
}

@PersistenceContext会让Spring在实例化的时候给服务注入一个EntityManager。@PersistenceContext注解可以放在实例变量,或者setter方法前面。如果一个类被注解为@Transactional,Spring将会确保类的方法在运行在一个事务中。


分享到:
评论

相关推荐

    Eclipse开发 Struts 2 + Spring 2 + JPA + AJAX

    在本文中,我们将深入探讨如何使用Eclipse进行Java企业级应用开发,具体涉及Struts 2、Spring 2、JPA以及AJAX技术的集成。这些框架和技术的结合提供了强大的功能,包括MVC架构、依赖注入、持久化管理和异步通信。 ...

    Struts 2 + Spring 2 + JPA + AJAX 示例

    Struts 2、Spring 2、JPA 和 AJAX 是企业级 Web 应用开发中的四大核心技术,它们在构建高效、可扩展的系统中扮演着重要角色。本示例结合这四种技术,提供了一个完整的应用实例,帮助开发者了解如何将它们整合在一起...

    help\Struts 2 + Spring 2 + JPA + AJAX.

    Struts 2 + Spring 2 + JPA + AJAX 这个组合是早期非常流行的一个Java Web开发框架集合,它融合了MVC、依赖注入、面向切面编程以及异步请求处理等关键技术点,为开发者提供了一套完整的解决方案。 - **Struts 2**:...

    整合 Struts 2 + Spring 2 + JPA + AJAX

    在现代Web应用程序开发中,Struts 2、Spring、JPA 和 AJAX 是四个非常重要的技术组件。它们各自扮演着关键角色,共同构建了一个功能强大且灵活的后端架构。 **Struts 2** 是一个基于 MVC(Model-View-Controller)...

    经典的Struts2+Spring 2+JPA+AJAX学习项目

    Struts2+Spring 2+JPA+AJAX学习项目是一个经典的Java Web开发组合,用于构建高效、可扩展的应用程序。这个项目的核心组件包括: 1. **Struts2**: Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web...

    Struts 2 + Spring 2 + JPA + AJAX

    根据提供的文件信息,我们可以归纳出一个综合性的技术知识点讲解,主要围绕Struts 2、Spring 2、JPA以及AJAX的技术集成应用。下面将详细解释这些技术如何结合使用,并提供一个基本的教程概述。 ### 技术栈概览 ###...

    (SSH开发包)Struts2.5.2+hibernate5.2.2+spring4.3.3整合开发包

    SSH框架,全称为Struts2、Hibernate和Spring的组合,是Java Web开发中常见的三大开源框架集成。这个整合开发包提供了最新版本的Struts2.5.2、Hibernate5.2.2和Spring4.3.3,为开发者提供了一个高效、灵活且可扩展的...

    Struts2+AJAX+JPA+Spring合集(英文版)

    总之,Struts2、AJAX、JPA与Spring的综合运用不仅展示了各自框架的优势,还体现了现代Web开发中模块化、灵活性和高性能的要求。通过这种方式构建的应用程序,能够更好地应对复杂的企业级需求,提供稳定、安全和高效...

    Struts 2 + Spring 2 + JPA + AJAX示例

    Struts 2、Spring 2 和 JPA 是Java Web开发中的三个重要框架,它们共同构建了一个强大、灵活的后端架构。在这个示例中,它们与AJAX技术结合,提供了更丰富的用户交互体验。让我们详细了解一下这些技术以及它们如何...

    JSF+Spring+JPA(Hibernate实现)的环境搭建

    本文旨在详细介绍如何构建基于JSF(JavaServer Faces)、Spring以及JPA(Java Persistence API,通常通过Hibernate实现)的开发环境。这种组合被视为一种现代化的技术解决方案,能够替代传统的Struts2+Spring+...

    Maven4MyEclipse 搭建ssh2+extjs项目(4)struts2.3.4+hibernate4.2.0+spring3.1.2

    在本项目中,我们主要探讨如何使用Maven4MyEclipse搭建一个集成Struts2.3.4、Hibernate4.2.0和Spring3.1.2的SSH2(Struts2、Spring、Hibernate)项目,并结合ExtJS进行前端开发。这是一个经典的Java企业级应用架构,...

    spring3.1+struts2.3+hibernate4.1小例子(有jar)

    标题中的"spring3.1+struts2.3+hibernate4.1小例子"指的是一款基于Java的Web应用程序开发示例,它整合了三个流行的技术框架:Spring 3.1、Struts 2.3和Hibernate 4.1。这个小例子可能是一个学习资源或模板,用于教授...

    Java代码生成工具 绿色版_生成Struts2.1.8,Spring2.5,Hibernate3代码

    Java代码生成工具是一种高效开发辅助软件,主要用于自动化生成基于Java技术栈的Web应用程序代码,尤其针对Struts2.1.8、Spring2.5和Hibernate3这三个经典框架的集成应用。这样的工具能够显著提高开发效率,减少手动...

    SSH2_Ajax 的可发布war包和eclipse工程

    SSH2_Ajax是一个基于最新版本的Struts2.2.1.1、Spring3.0.5和Hibernate3.6的整合项目,旨在提供一个可发布的WAR包和Eclipse工程模板,便于开发者快速构建Web应用。这个项目的核心是将这三大流行框架(Struts2、...

    Eclipse Web开发从入门到精通 实例版 光盘源代码

    Eclipse是一款广泛使用的开源集成开发环境(IDE),尤其在Java Web开发领域中备受青睐。本压缩包中的"光盘源代码"提供了从入门到精通Eclipse Web开发的实例,覆盖了从第4章到第14章的内容。下面将详细阐述这些章节中...

    java3年工作经验简历_java简历.doc

    - **云族在线办公管理平台**:采用Struts+Spring+SpringDataJPA+Maven+EasyUi+poi,负责了系统优化、权限管理、审批流程、人员流动管理和财务管理等功能。通过Activiti实现工作流,用Shiro开发权限系统,运用...

    J2EE SSH2架构(3)

    在IT行业中,SSH2是指Struts2、Spring和Hibernate三个开源框架的组合,它们是构建J2EE企业级应用的常见选择。这个“J2EE SSH2架构(3)”的主题聚焦于Struts2.1.8、Spring2.5.6和Hibernate3.3这三个特定版本的集成和...

    BBS.rar_BBS java_BBS论坛_freemarker java_struts2 bbs_论坛

    5. **MyEclipse**:MyEclipse是一款基于Eclipse的Java集成开发环境,支持Java、JSP、Servlet、Struts、Spring等Web项目的开发和调试。 6. **Tomcat服务器**:Tomcat是Apache软件基金会的开源Servlet容器,支持Java ...

Global site tag (gtag.js) - Google Analytics