收藏 分销(赏)

Eclipse整合SSH开发.doc

上传人:仙人****88 文档编号:12012355 上传时间:2025-08-27 格式:DOC 页数:20 大小:364.86KB 下载积分:10 金币
下载 相关 举报
Eclipse整合SSH开发.doc_第1页
第1页 / 共20页
Eclipse整合SSH开发.doc_第2页
第2页 / 共20页


点击查看更多>>
资源描述
搭建SSH 开发环境 目录 1. 环境准备 1 1.1 Spring 1 1.2 Struts2 1 1.3 Hibernate 1 1.4 jdbc driver 2 1.5 Apache commons jar 2 2. 集成SSH 2 2.1 新建 Dynamic Web Project 2 2.2 编写测试代码 3 2.2.1 新建 databean 3 2.2.2 编写 hibernate 映射文件 4 2.2.3 编写业务bean 4 2.2.4 编写 Spring 配置文件 8 2.2.5 编写 JUnit 测试代码 9 2.3 集成 struts2 12 2.3.1 引入struts2 依赖 jar 12 2.3.2 编写控制层代码 12 2.3.3 编写 struts2 配置文件 14 2.3.4 修改 spring 配置文件 15 2.3.5 编写 jsp 代码 15 2.3.6 修改 web.xml 16 2.3.7 测试 17 参考资料 19 1. 环境准备 1.1 Spring url:http://www.springsource.org/ 下载:spring-framework-2.5.6.SEC02.zip 所需 jar : 序号 文件 路径 1 spring.jar /dist 2 spring-aspects.jar /dist/weaving 1.2 Struts2 url:http://struts.apache.org/ 下载:struts-2.1.8.1-lib.zip 所需 jar : 序号 文件 路径 1 commons-fileupload-1.2.1.jar /lib 2 commons-io-1.3.2.jar /lib 3 freemarker-2.3.15.jar /lib 4 ognl-2.7.3.jar /lib 5 struts2-core-2.1.8.1.jar /lib 6 struts2-spring-plugin-2.1.8.1.jar /lib 7 xwork-core-2.1.6.jar /lib 1.3 Hibernate url: 下载:hibernate-distribution-3.5.3-Final-dist.zip hibernate-annotations-3.4.0.GA.zip 所需 jar : hibernate-distribution-3.5.3-Final-dist.zip 序号 文件 路径 1 hibernate3.jar / 2 antlr-2.7.6.jar /lib/required 3 commons-collections-3.1.jar /lib/required 4 dom4j-1.6.1.jar /lib/required 5 javassist-3.9.0.GA.jar /lib/required 6 jta-1.1.jar /lib/required 7 slf4j-api-1.5.8.jar /lib/required 8 ehcache-1.5.0.jar /Lib/optional/ehcache hibernate-annotations-3.4.0.GA.zip 序号 文件 路径 1 ejb3-persistence.jar /lib 2 log4j.jar /lib/test 3 slf4j-log4j12.jar /lib/test 1.4 jdbc driver url: 下载:mysql-connector-java-5.1.13.zip 所需 jar : 序号 文件 路径 1 mysql-connector-java-5.1.13-bin.jar / 1.5 Apache commons jar url:http://commons.apache.org/ 下载:commons-dbcp-1.3-bin.zip commons-pool-1.5.4-bin.zip commons-logging-1.1.1-bin.zip 所需 jar : commons-dbcp-1.3-bin.zip 序号 文件 路径 1 commons-dbcp-1.3.jar / commons-pool-1.5.4-bin.zip 序号 文件 路径 1 commons-pool-1.5.4.jar / commons-logging-1.1.1-bin.zip 序号 文件 路径 1 commons-logging-1.1.1.jar / 2 commons-logging-api-1.1.1.jar / 2. 集成SSH 2.1 新建 Dynamic Web Project a. 打开 Eclipse -> 打开 Java EE Perspective (Window -> Open Perspective -> Other... -> Java EE) -> 打开 Package Explorer View (Window -> Show View -> Other... -> Package Explorer) b. 新建 Project File -> New -> Dynamic Web Project -> 输入 Project name: SSH,单击 Next -> 修改 Default output folder: WebContent/WEB-INF/classes,单击 Finish c. 设置项目编码 utf-8 选中 SSH -> Project -> Properties -> Resource -> Text file encoding -> Other: UTF-8 -> Apply d. 设置编译级别 选中 SSH -> Project -> Properties -> Java Compiler -> 选择 Compiler compliance level: 1.5 e. 添加 JUnit 支持 选中 SSH -> Project -> Properties -> Java Build Path -> Libraries -> Add Library... -> 选择JUnit,单击 Next -> 选择 JUnit Library version: JUnit 4 -> Finish f. 添加 Spring, Hibernate, jdbc driver及 Apache commons的所需 jar 将需要的jar 复制到 WebContent/WEB-INF/lib 目录中 -> 选中 SSH -> Project -> Properties -> Java Build Path -> Libraries -> 展开Web App Libraries -> 确认所需 jar 文件已在 build path 中 2.2 编写测试代码 2.2.1 新建 databean // org.demo.bean.Person.java package org.demo.bean; /** * databean:Person * @author * @date 2010-7-17 * @file org.demo.bean.Person.java */ public class Person { private int id; private String name; public Person(){ } public Person(String name){ this.name = name; } 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; } @Override public String toString() { return "Person [id=" + id + ", name=" + name + "]"; } } 2.2.2 编写 hibernate 映射文件 // org.demo.bean.Person.hbm.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" " <hibernate-mapping package="org.demo.bean"> <class name="Person" table="PERSON"> <id name="id"> <generator class="native" /> </id> <property name="name" length="50" not-null="true"/> </class> </hibernate-mapping> 注:hibernate 映射文件的模板参见hibernate-distribution-3.5.3-Final /documentation/manual/zh-CN/pdf/hibernate_reference.pdf 第5章对象/关系数据库映射基础(Basic O/R Mapping) 2.2.3 编写业务bean // org.demo.service.PersonService.java package org.demo.service; import java.util.List; import org.demo.bean.Person; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; /** * 业务层:PersonService * @author * @date 2010-7-20 * @file org.demo.service.PersonService.java */ public interface PersonService { /** * 保存 * @param person */ public abstract void save(Person person); /** * 修改 * @param person */ public abstract void update(Person person); /** * 删除 * @param personId */ public abstract void delete(int personId); /** * 删除所有 */ public abstract void deleteAll(); /** * 获取 * @param personId * @return */ @Transactional(readOnly = true, propagation = Propagation.NOT_SUPPORTED) public abstract Person get(int personId); /** * 分页查询 [startRow < rowNum <= startRow + maxResult] * @param startRow * @param maxResult * @return */ @Transactional(readOnly = true, propagation = Propagation.NOT_SUPPORTED) public abstract List<Person> get(int startRow,int maxResult); /** * 获取全部 * @return */ @Transactional(readOnly = true, propagation = Propagation.NOT_SUPPORTED) public abstract List<Person> getAll(); } //org.demo.service.impl.PersonServiceImpl.java package org.demo.service.impl; import java.util.List; import org.demo.bean.Person; import org.demo.service.PersonService; import org.hibernate.Query; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; /** * 业务层:PersonBeanImpl * @author * @date 2010-7-20 * @file org.demo.service.impl.PersonServiceImpl.java */ @Transactional public class PersonServiceImpl implements PersonService { @Autowired //@Resource //[在 jdk1.6下] private SessionFactory sessionFactory; /** * 保存 * @param person */ public void save(Person person){ sessionFactory.getCurrentSession().persist(person); } /** * 修改 * @param person */ public void update(Person person){ sessionFactory.getCurrentSession().merge(person); } /** * 删除 * @param personId */ public void delete(int personId){ Object bean = sessionFactory .getCurrentSession().load(Person.class,personId); sessionFactory.getCurrentSession().delete(bean); } /** * 删除所有 */ public void deleteAll(){ List<Person> list = getAll(); for (int i=0; i<list.size(); i++){ sessionFactory.getCurrentSession().delete(list.get(i)); } } /** * 获取 * @param personId * @return */ @Transactional(readOnly=true,propagation=Propagation.NOT_SUPPORTED) public Person get(int personId){ return (Person)sessionFactory.getCurrentSession() .get(Person.class,personId); } /** * 分页查询 [startRow < rowNum <= startRow + maxResult] * @param startRow * @param maxResult * @return */ @SuppressWarnings("unchecked") @Transactional(readOnly=true,propagation=Propagation.NOT_SUPPORTED) public List<Person> get(int startRow,int maxResult){ Query query = sessionFactory.getCurrentSession() .createQuery("from Person"); query.setFirstResult(startRow); query.setMaxResults(maxResult); return query.list(); } /** * 获取全部 * @return */ @SuppressWarnings("unchecked") @Transactional(readOnly=true,propagation=Propagation.NOT_SUPPORTED) public List<Person> getAll(){ return sessionFactory.getCurrentSession() .createQuery("from Person").list(); } } 2.2.4 编写 Spring 配置文件 // 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: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.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <!-- 启用注解方式注入依赖对象 --> <context:annotation-config/> <!-- 配置 dataSource --> <bean id="dataSource" class="mons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://10.162.11.192:3306/test?useUnicode=true&amp;characterEncoding=utf-8" /> <property name="username" value="root" /> <property name="password" value="root"/> <property name="initialSize" value="1"/> <property name="maxActive" value="500"/> <property name="maxIdle" value="2"/> <property name="minIdle" value="1"/> </bean> <!-- 配置 sessionFactory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="mappingResources"> <list> <value>org/demo/bean/Person.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <value> hibernate.dialect=org.hibernate.dialect.MySQL5Dialect hibernate.hbm2ddl.auto=update hibernate.show_sql=false hibernate.format_sql=false </value> </property> </bean> <!-- 配置事务管理器 --> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"/> </bean> <!-- 启用注解方式的事务控制 --> <tx:annotation-driven transaction-manager="txManager"/> <!-- 配置业务 bean --> <bean id="personService" class="org.demo.service.impl.PersonServiceImpl"/> </beans> 注:Spring 配置文件的模板参见 http://static.springsource.org/spring/docs/2.5.x/reference/xsd-config.html#xsd-config-body 2.2.5 编写 JUnit 测试代码 // test.junit.PersonServiceTest.java package test.junit; import java.util.List; import org.demo.bean.Person; import org.demo.service.PersonService; import org.junit.BeforeClass; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** * JUnit测试类:PersonServiceTest * @author * @date 2010-7-20 * @file test.junit.PersonServiceTest.java */ public class PersonServiceTest { private static PersonService bean = null; @BeforeClass public static void setUpBeforeClass() throws Exception { try { ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); bean = (PersonService)ctx.getBean("personService"); } catch (Exception e){ e.printStackTrace(); } } @Test public void testAllMethods(){ System.out.println("+----------save---------+"); testSave(); testGetAll(); System.out.println("+----------update-------+"); testUpdate(); testGetAll(); System.out.println("+----------get----------+"); testGet(); System.out.println("+----------getAll-------+"); testGetAll(); System.out.println("+----------delete-------+"); testDelete(); testGetAll(); System.out.println("+----------deleteAll----+"); testDeleteAll(); testGetAll(); } @Test public void testSave() { bean.save(new Person("Zhangsan")); bean.save(new Person("Lisi")); } @Test public void testUpdate() { Person person = new Person("Zhangsan_uu"); // 注:此处 id 须修改 person.setId(1); bean.update(person); } @Test public void testDelete() { // 注:此处 id 须修改 bean.delete(1); } @Test public void testDeleteAll() { bean.deleteAll(); } @Test public void testGet() { // 注:此处 id 须修改 Person person = bean.get(1); System.out.println(person); } @Test public void testGetPage(){ List<Person> list = bean.get(10,10); for(int i=0; i<list.size(); i++){ System.out.println(list.get(i)); } } @Test public void testGetAll() { List<Person> list = bean.getAll(); for(int i=0; i<list.size(); i++){ System.out.println(list.get(i)); } } } 运行 testAllMethods()方法,输出如下: +----------save---------+ Person [id=1, name=Zhangsan] Person [id=2, name=Lisi] +----------update-------+ Person [id=1, name=Zhangsan_uu] Person [id=2, name=Lisi] +----------get----------+ Person [id=1, name=Zhangsan_uu] +----------getAll-------+ Person [id=1, name=Zhangsan_uu] Person [id=2, name=Lisi] +----------delete-------+ Person [id=2, name=Lisi] +----------deleteAll----+ 2.3 集成 struts2 2.3.1 引入struts2 依赖 jar 将 struts2 需要的 jar 复制到 WebContent/WEB-INF/lib 目录中 -> 选中 SSH -> Project -> Properties -> Java Build Path -> Libraries -> 展开Web App Libraries -> 确认所需 jar 文件已在 build path 中 2.3.2 编写控制层代码 // org.demo.action.PersonAction.java package org.demo.action; import java.util.List; import javax.servlet.ServletRequest; import org.apache.struts2.ServletActionContext; import org.demo.bean.Person; import org.demo.service.PersonService; import org.springframework.beans.factory.annotation.Autowired; import com.opensymphony.xwork2.ActionSupport; /** * 控制层:PersonAction * @author * @date 2010-7-21 * @file org.demo.action.PersonAction.java */ public class PersonAction extends ActionSupport{ /** * */ private static final long serialVersionUID = 1L; @Autowired private PersonService personService; /** * viewbean */ private Person person; /** * 转到增加页面 * @return */ public String addUI(){ return "addUI"; } /** * 保存
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服