Struts+Spring+Hibernate真正入门级实例

本文提供了一个简单易懂的SSH(Struts+Spring+Hibernate)架构CRUD操作示例,适合初学者快速入门。示例涵盖了人员信息的增删改查,并详细展示了所需的配置文件、代码结构及数据库设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网上有很多关于SSH架构的实例文章,但都显得复杂,我想,入门的朋友,还是希望从最简单的CRUD操作开始,一些复杂的数据库关系,逻辑关系,以后在项 目中就能碰到,所以,本文定位于从零开始的一个SSH架构的例子,功能很简单,就是完成一个人员的CRUD操作,麻雀虽小,五脏俱全,希望能对从来没有接 触过三者结合开发的朋友带来一点点帮助,这个例子,也算是我的入门实例,从此,开始Struts+Spring+Hibernate之旅

开发工具:MyEclipse5.1+Tomcat+Mysql

开发前准备:数据库安装,tomcat安装,下载jar包这些就不费口水了,直接切入正题吧
CREATE TABLE `people` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(100) default NULL,
`location` varchar(100) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 ROW_FORMAT=COMPRESSED;

首先,建立工程和package,以下是我的工程目录
action
DeletePeopleAction.java //删除人员action
EditPeopleAction.java //编辑人员action第一步,读取需要修改的人员资料
EditPeopleActionDo.java//修改人员action
ListPeopleAction.javaSave //显示人员列表action
SavePeopleAction.java //新增人员action
SearchPeopleAction.java //查找人员action
dao
IDAO.java //数据库操作接口
StudentDAOImpl.java//数据库操作实现
domain
AbstractPeople.java //实体抽象类
People.hbm.xml //数据库映射
People.java //实体类
service
IService.java //服务层接口
StudentManagerImpl.java //服务层实现
util
Character.java //字符编码过滤器
PageSupport.java //分页
applicationContext_hibernate.xml //Spring配置文件(hibernate部分)
applicationContext_service.xml //Spring配置文件(Service部分)

JSP:这几个jsp从名字就能看出功能,不说了
addStudent.jsp
editStudent.jsp
searchList.jsp
searchStudent.jsp
studentList.jsp

代码:

applicationContext_hibernate.xml

<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
<!--
<beanid="dataSource"class="org.springframework.jndi.JndiObjectFactoryBean">
<propertyname="jndiName">
<value>java:comp/env/jdbc/StudentManager</value>
</property>
</bean>
-->
<beanid="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<propertyname="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<propertyname="url">
<value>jdbc:mysql://localhost:3306/studentmanager</value>
</property>
<propertyname="username">
<value>root</value>
</property>
<propertyname="password">
<value>1234</value>
</property>

</bean>

<beanid="TransactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<propertyname="dataSource">
<refbean="dataSource"/>
</property>
</bean>

<beanid="sessionFactory"
class
="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<propertyname="dataSource">
<reflocal="dataSource"/>
</property>
<propertyname="hibernateProperties">
<props>
<propkey="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<propkey="hibernate.show_sql">true</prop>
<propkey="hibernate.cache.use_query_cache">true</prop>
<propkey="hibernate.cache.provider_class">
org.hibernate.cache.HashtableCacheProvider
</prop>
</props>
</property>
<!--
<propertyname="mappingDirectoryLocations">
<list>
<value>classpath:/domain</value>
</list>
</property>
-->
<propertyname="mappingResources">
<list>
<value>domain/People.hbm.xml</value>
</list>
</property>
</bean>

<beanid="StudentDAO"class="dao.StudentDAOImpl">
<propertyname="sessionFactory">
<reflocal="sessionFactory"/>
</property>
</bean>
</beans>

applicationContext_service.xml

<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

<beanid="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<propertyname="sessionFactory">
<refbean="sessionFactory"/>
</property>
</bean>


<beanid="studentManager"class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<propertyname="transactionManager">
<refbean="transactionManager"></ref>
</property>
<propertyname="target">
<beanclass="service.StudentManagerImpl">
<propertyname="studentDAO">
<refbean="StudentDAO"/>
</property>
</bean>
</property>
<propertyname="transactionAttributes">
<props>
<propkey="save*">PROPAGATION_REQUIRED</prop>
<propkey="list*">PROPAGATION_REQUIRED,readOnly</prop>
<propkey="delete*">PROPAGATION_REQUIRED</prop>
<propkey="get*">PROPAGATION_REQUIRED,readOnly</prop>
<propkey="edit*">PROPAGATION_REQUIRED</prop>
<propkey="search*">PROPAGATION_REQUIRED</prop>
</props>
</property>
<propertyname="proxyTargetClass">
<value>true</value>
</property>

</bean>


</beans>

Web.xml

<?xmlversion="1.0"encoding="UTF-8"?>
<web-appxmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"version="2.4"xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>

<param-value>
/WEB-INF/classes/applicationContext_service.xml,
/WEB-INF/classes/applicationContext_hibernate.xml

</param-value>
</context-param>

<resource-ref>
<description>SqlServerDatasourceexample</description>
<res-ref-name>jdbc/StudentManager</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>

<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>




<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>

struts-config.xml

<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEstruts-configPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration1.2//EN""http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
<data-sources/>
<form-beans>
<form-beanname="people"type="domain.People"></form-bean>
</form-beans>
<global-exceptions/>
<global-forwards/>
<action-mappings>
<actionpath="/savePeople"name="people"type="action.SavePeopleAction">
<forwardname="success"path="/listPeople.do"></forward>
</action>

html>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值