Struts+Spring+Hibernate框架配置方案
### Struts+Spring+Hibernate框架配置方案详解 #### 一、引言 本文旨在提供一个完整的Struts+Spring+Hibernate(SSH)框架配置方案。针对初学者或希望深入理解SSH框架如何协同工作的开发者,本文提供了从环境搭建到具体实现的全过程指导。通过一个简单的示例——从前端获取数据并展示从数据库查询的信息——来逐步讲解每个配置文件的作用及相互间的依赖关系。 #### 二、基础知识需求 在开始之前,确保您具备以下基础知识: 1. **Eclipse基本操作**:熟悉Eclipse集成开发环境的基本使用方法。 2. **Tomcat配置**:了解如何部署应用程序至Tomcat服务器。 3. **Struts、Spring、Hibernate基础**:至少了解`struts-config.xml`、`hibernate.cfg.xml`、`ApplicationContext.xml`这三个配置文件的基本用途。 #### 三、配置路线图 为了便于理解,首先给出配置路线图(如下图所示),展示了从用户请求到数据返回整个过程中涉及到的六个主要配置文件及其依赖关系。  #### 四、具体步骤 ##### 1. 建立项目 - 使用MyEclipse建立名为SSHDemo的新项目。 - 下载并添加必要的JAR文件到项目的classpath中,这些文件包括但不限于: - Struts相关的库文件,如`Struts.jar`、`commons-beanutils.jar`等。 - Hibernate相关的库文件,如`Hibernate3.jar`。 - Spring相关的库文件,如`spring.jar`。 - 数据库驱动文件,例如`mysql-connector-java-5.0.0-beta-bin.jar`。 - 将所有这些JAR文件复制到项目的`WEB-INF/lib`目录下。 ##### 2. 建立相关文件 - **hello.jsp**:用于展示从数据库获取的信息。 ```html <%@ page language="java" contentType="text/html; charset=GB2312" pageEncoding="GB2312" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB2312"> <title>StrutsDemo</title> </head> <body> <H1>Hello, ${userInfo["username"]}!</H1> </body> </html> ``` - **创建数据库表**:在MySQL中创建一张名为`us`的表,并插入一条测试数据。 ```sql CREATE TABLE us (id INT(10) PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20)) TYPE=INNODB; INSERT INTO us (name) VALUES ('zhaoyuan'); ``` - **User.java**:定义User实体类。 ```java package edu.bjtu.zhao.ssh; public class User { private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } ``` - **UserDAO.java**:实现对User实体类的数据库操作。 ```java package edu.bjtu.zhao.ssh; import org.hibernate.Session; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; public class UserDAO { public static User getUser(int id) { Configuration config = new Configuration().configure(); Session session = config.buildSessionFactory().openSession(); Transaction tx = session.beginTransaction(); User user = (User) session.get(User.class, id); tx.commit(); session.close(); return user; } } ``` ##### 3. 配置文件详解 - **struts-config.xml**:定义Action映射、FormBean以及转发页面。 ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://jakarta.apache.org/dtds/struts-config_1_2.dtd"> <struts-config> <form-beans> <form-bean name="userForm" type="edu.bjtu.zhao.ssh.UserForm"/> </form-beans> <action-mappings> <action path="/hello" type="edu.bjtu.zhao.ssh.HelloAction" name="userForm" scope="request" input="/index.jsp" parameter="method"> <forward name="success" path="/hello.jsp"/> </action> </action-mappings> </struts-config> ``` - **hibernate.cfg.xml**:配置Hibernate连接数据库的相关信息。 ```xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/testdb</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">password</property> <property name="hibernate.show_sql">true</property> <mapping resource="edu/bjtu/zhao/ssh/User.hbm.xml"/> </session-factory> </hibernate-configuration> ``` - **ApplicationContext.xml**:配置Spring的Bean管理。 ```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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="userDAO" class="edu.bjtu.zhao.ssh.UserDAO"/> <!-- Other beans and configurations can be added here --> </beans> ``` - **User.hbm.xml**:Hibernate的映射文件,用于定义实体类与数据库表的映射关系。 ```xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="edu.bjtu.zhao.ssh.User" table="us"> <id name="id" column="id"> <generator class="increment"/> </id> <property name="name" column="name"/> </class> </hibernate-mapping> ``` 通过以上步骤,我们成功构建了一个简单的SSH应用,该应用能够从前端接收请求,通过Spring进行业务逻辑处理,利用Hibernate与数据库交互,并最终通过Struts展示结果。这个示例不仅涵盖了SSH框架的基本使用,还帮助初学者理解了三个框架之间的协作方式。


















剩余7页未读,继续阅读



- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 电厂设备检修标准.doc
- 鹤山市某房地产项目委托监理合同.doc
- 陕西某高层住宅项目应急预案(2010年).docx
- 监理月报第五期.doc
- 福州市医院垃圾现状调查研究.doc
- 汽轮发电机基座工法.doc
- 2015版ISO9001质量手册-参考.doc
- 批腻子安全技术交底.doc
- 工程造价审计质量影响因素及对策.doc
- 活动地板面层施工工艺标准.docx
- 幼儿园改扩建项目现场技术管理制度.doc
- 岩溶裂隙区高路堤基底强夯施工.doc
- chromedriver-mac-x64-141.0.7383.0(Canary).zip
- chromedriver-win32-141.0.7383.0(Canary).zip
- chromedriver-win64-141.0.7383.0(Canary).zip
- 英语活动-milk.doc


