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

网上有很多关于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>
-->
< bean id ="dataSource" class ="org.springframework.jdbc.datasource.DriverManagerDataSource" >
< property name ="driverClassName" >
< value > com.mysql.jdbc.Driver </ value >
</ property >
< property name ="url" >
< value > jdbc:mysql://localhost:3306/studentmanager </ value >
</ property >
< property name ="username" >
< value > root </ value >
</ property >
< property name ="password" >
< value > 1234 </ value >
</ property >

</ bean >

< bean id ="TransactionManager" class ="org.springframework.jdbc.datasource.DataSourceTransactionManager" >
< property name ="dataSource" >
< ref bean ="dataSource" />
</ property >
</ bean >

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

< bean id ="StudentDAO" class ="dao.StudentDAOImpl" >
< property name ="sessionFactory" >
< ref local ="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 >

< bean id ="transactionManager" class ="org.springframework.orm.hibernate3.HibernateTransactionManager" >
< property name ="sessionFactory" >
< ref bean ="sessionFactory" />
</ property >
</ bean >


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

</ bean >


</ beans >

Web.xml

<? xmlversion="1.0"encoding="UTF-8" ?>
< web-app xmlns ="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-bean name ="people" type ="domain.People" ></ form-bean >
</ form-beans >
< global-exceptions />
< global-forwards />
< action-mappings >
< action path ="/savePeople" name ="people" type ="action.SavePeopleAction" >
< forward name ="success" path ="/listPeople.do" ></ forward >
</ action >

html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值