开发环境:MyEclipse8.5+Mysql
说明:本实例是简单注册程序(只有两个属性)
数据库脚本:user.sql
CREATE TABLE `user` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
开发步骤:
一
1建立Web项目
选择: Java EE 5.0
2添加Struts支持(项目右键MyEclipse Struts Capabilities …)
选择:
1)Struts specification: Struts 1.2
2)Base package for 那位classes:com.beyondsoft.s1sh
3添加Spring支持(项目右键MyEclipse Spring Capabilities …)
选择:
1) Spring version:Spring 2.5
2) Select the libraries to add the buildpath:
Spring 2.5 AOP Libraries
Spring 2.5 Core Libraries
Spring 2.5 Persistence Core Libraries
Spring 2.5 Persistence JDBC Libraries
Spring 2.5 Web Libraries
3) JAR Library Installation:
Copy checked Library contents to project folder (TLDs always copied)
Next
4) Spring配置文件选择目录Folder:WebRoot/WEB-INF
Finish
4 添加Hibernate支持(项目右键MyEclipse Hibernate Capabilities …)
选择:
1)Hibernate Specification:Hibernate3.2
2)Select the libraries to ad to the buildpath:Hibernate 3.2 Core Libraries和Hibernage 3.2 Annoations
3)JAR Library Installation:Copy checked Library Jars to project folder and add to build-path
Next
4)选择:Spring configuration file(applicationContext.xml) Next
5)选择:Existing Spring configuration file
SessionFactory Id: sessionFactory Next
6)Bean Id:dataSource
DB Driver:选择配置好的Hibernate。Next
7)不建立SessionFactory(不选择Create SessionFactory class?)
8)Finish。
二 数据库方面
Hibernate反向工程:
1).准备数据库,假如名为s1sh,里面有一个User的表
2).在MyEclipse的右上角切换透视图,切换到MyEclipse Database Explorer
3).然后在最左边点击右键,选择New(也就是说新建一个数据库连接,Driver Name叫s1sh,方便下面解释,其它的跟平常用的一样),,配置好连接以后点击Next,进入下一个窗体, 选择第三个单选按钮(Display the selected Schemas),然后点击右边的Add按钮,也就是说添加你的数据库,然后点击完成按钮,这样你的数据库连接就创建好了;
在你刚才创建的s1sh上右键,选择Open connection, 一直展开到s1sh下面的TABLE,展开TABLE,在我们创建的User表上点击右键,选择Hibernate Reverse Engineering(这个就是反向生成),出来一个面板 在Java src folder 选择这个工程的src目录,然后在Java Package上选择刚才我们在工程里面创建好的bean包,接下来就是勾中前三个复选框就可以了,点击Next,又会出现一个面板,这个面板可以不用管,然后点击Next,这个面板也不用管,点击Finish,然后就会生成实体类和映射文件了。
三 建立JSP 页面,Action类
1) 打开struts-config.xml配置文件:右键new Form,Action and JSP
2) User case:register
Form Impl:New FormBean
Properties:username password
JSP:选择Create JSP form Next
3) Action 默认就可以了 Finish
4) 配置struts-config.xml文件,将Struts交给Spring管理
a) 加入插件 (message-resources标记下)
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml" />
</plug-in>
b) 将Action类移交(message-resources标记上)
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/>
struts-config.xml文件(全部)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources />
<form-beans>
<form-bean name="registerForm" type="com.beyondsoft.bean.RegisterForm">
<form-property name="id" type="java.lang.Integer" />
<form-property name="username" type="java.lang.String" />
<form-property name="password" type="java.lang.String" />
</form-bean>
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings>
<action attribute="registerForm" input="/form/register.jsp"
name="registerForm" path="/register" scope="request"
type="com.beyondsoft.s1sh.action.RegisterAction">
<forward name="success" path="/form/main.jsp" />
</action>
<!--
<action input="/form/register.jsp" name="registerForm"
path="/register" scope="request"
type="com.beyondsoft.s1sh.action.RegisterAction"> <forward
name="success" path="/form/main.jsp" /> </action>
-->
</action-mappings>
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor" />
<message-resources parameter="com.beyondsoft.s1sh.ApplicationResources" />
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
</plug-in>
</struts-config>
5) register.jsp页面(WebRoot/form/register.jsp)
<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<html>
<head>
<title>JSP for DynaActionForm form</title>
</head>
<body>
<html:form action="/register">
username : <html:text property="username"/><html:errors property="username"/><br/>
password : <html:text property="password"/><html:errors property="password"/><br/>
<html:submit value="注册"/> <html:reset value="重置"/>
</html:form>
</body>
</html>
6.在applicationContext.xml里面加入
<bean name="/register" class="com.beyondsoft.s1sh.action.RegisterAction">
<property name="userDAO">
<ref bean="userDAO" />
</property>
</bean>
applicationContext.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:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://localhost:3306/s1sh"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/beyondsoft/bean/User.hbm.xml</value>
</list>
</property>
</bean>
<bean id="userDAO" class="com.beyondsoft.bean.UserDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean name="/register" class="com.beyondsoft.s1sh.action.RegisterAction">
<property name="userDAO">
<ref bean="userDAO" />
</property>
</bean>
</beans>
7.在RegisterAction类里面加一个属性userDAO;并实现set和get方法。
再加入
userDAO.save(new User(registerForm.getUsername(),registerForm.getPassword()));
return mapping.findForward("success");
在运行即可。
但是由于Myeclipse的问题会出现org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
它是由于在使用Spring的AOP编程时,会用到这几个lib:
asm-2.2.3.jar
asm-commons-2.2.3.jar
asm-util-2.2.3.jar
Hibernate使用如果lib:
asm.jar
asm-attrs.jar
其中asm-2.2.3.jar与asm.jar存在类上的冲突!
使用其中之一或两者都使用,可能会出现如下错误:
java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
java.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitor
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit。。。。。。
所以我们只要去除类路径上的关于Hibernate的3个lib
asm.jar
asm-attrs.jar
cglib-2.1.3.jar 即可运行成功。
这是一个最简单的Strut1.2+Spring2.6+Hibernate3.2整合的一个小实例。如果你要实现更多的功能可以在这个的基础上面再加。
分享到:
相关推荐
Strut2+Spring2.5+Hibernate3.2增删改查小例子,刚学时,在网上找的资料讲的不是很清楚,不适合初学者,现在这个例子适合初学者,希望初学者能更快上手.用的Oracle数据库,内有框架搭架方法
SSH整合spring3.2+strut2.3.4+hibernate4.2所需jar包,没分下载这上面有的,花了一个下午收集齐全打包分享
可以运行起来的 strut2+spring+hibernate +sqlserver2005 实现简单的登陆
Strut+Spring+Hibernate框架的工作原理 非常详细 适合初学者和有一定经验的编程人员
构建strut2+spring3+hibernate4所有jar,直接导入lib,进行相关配置
Struts2+Spring2.5+Hibernate3.2集成实例开发2 Struts2+Spring2.5+Hibernate3.2集成实例开发2
strut2+hibernate+spring,使用spring进行依赖注入。
strut+spring+hibernate注册登录系统,包括管理员登录,管理员对普通用户的增删改查;用户的注册,登录!对初学SSH框架的有很大的帮助!
strut2+spring+springjdbctemplate做的简易登录系统
spring3.2+strut2+hibernate4 注解方式。 spring.xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...
经过一天时间把SSH整合了, 包里有三大框架最基础的jar, 没有这些, tomcat运行就报错. 另要加其他插件和功能, 请自行添加
Struts2+Spring2.5+Hibernate3.2集成实例开发 附带我本人写的一个实例,如果默认数据库Oracle10g ,可以根据实际情况调整;文件较大,分为两个部分下载,同时下在完成后,执行Struts2+Spring+Hibernate.part1.rar...
strut2+spring+jpa开发权限管理系统。
ssh三大框架的整合步骤,非常详细。包含spring整合struts、spring整合hibernate、声明式事务说明等。
strut2+hibernate+Spring3三大框架整合,简单实现增删改查,已封层,适合学完三大框架 后练手项目。
手把手教你strut1.2+Spring+hibernate的整合,对于初学者非常有用
strut2+hibernate+spring常用帮助文档
strut2+hibernate+spring+extjs3.0+excel 动态加载grid 数据导出excel,导入excel datasource自己修改你自己的数据源,数据库中的表可见实体类创建,或者自己修改实体类
很全的ssh整合的案例,有疑惑的看完绝对豁然开朗
struts2+spring+ibatis+mysql AOP日志管理,异常捕获 tomcat6.0+jdk1.6