Spring+Hibernate+Strust 整合开发步骤.docx
《Spring+Hibernate+Strust 整合开发步骤.docx》由会员分享,可在线阅读,更多相关《Spring+Hibernate+Strust 整合开发步骤.docx(39页珍藏版)》请在冰豆网上搜索。
Spring+Hibernate+Strust整合开发步骤
Spring+Hibernate+Strust整合开发步骤
工具:
MyEclipse5.0GA
1.1新建一个J2EEWEB工程
1.2新建一个数据源
1.2.1选择DBBrowser
1.2.2单击ok
1.2.3单击NEW
1.2.4单击Configuredatabasedriver
1.2.5单击NEW
1.2.6单击AddJARs…
1.2.7选择数据库驱动包。
1.2.8选择drivertemplate填写驱动名和连接URL单击OK
1.2.9单击OK
1.2.10填写profilename填写数据库username和password单击Next
1.2.11选择Displaydefaultschemaonly单击完成
1.2.12选择刚配置好的数据源选择openconnection打开数据库连接
1.3导入Spring环境
1.3.1在工程名上点反键,按上图选择。
1.3.2
是选择工程要用到Spring的一些包,
选择
是将包拷贝到工程目录下。
单击完成。
Spring环境导入完毕。
1.4导入Hibernate环境
已下步骤是让Spring管理Hibernate。
1.4.1按上图所选。
1.4.2选择所有的包,将包拷贝到工程目录,单击下一步
1.4.3这里选择
是让Spring来管理Hibernate的配置文件。
单击下一步。
1.4.4因为之前导过Spring的环境已经有applicationontext.xml.文件了。
所以要选择已有的文件,然后填上SessionFactory的ID名,工具会自动在applicationontext.xml生成一个SessionFactory的bean。
单击下一步。
1.4.5在这里要配置一个dataSource的bean,在
要选择在1.2配置好的数据源。
填上beanid。
单击下一步。
1.4.6这里是问是否创建HibernateSessionFactory这个类。
因为工程中Hibernate已经给Spring管理了。
已经不需要这个类了。
可以不选。
单击完成。
1.5导入strsut环境
按上图所选。
单击完成。
1.6WEB容器启动时加载Spring
现在要将
移到WEB-INF目录下。
WEB容器启动时要将Spring的
文件加载。
初始化AplicationContext
下面在web.xml里如何配置让Spring随环境启动加载。
在web.xml里加上
context
org.springframework.web.context.ContextLoaderServlet
1
1.7写个小实例。
1.7.1先创建一个表
createtableCustomer
(
usernamevarchar2(10)primarykey,
agenumber(10),
sexvarchar2(5)
)
1.7.2然后打开DBBrowser
1.7.3打开TABLE
1.7.4找到刚才创建的Customer表。
1.7.5在Customer表上单击反键。
选择HibernateRevrseEngineering
在
1.7.6单击Browse
1.7.7选择bean和映射文件的存放目录。
单击OK
1.7.8这里是是否创建bean的映射文件
1.7.9这里是是否创建javabean文件
1.7.10这里是是否创建数据库操作的DAO文件,一般不选,自己手动创建自己的DAO。
单击下一步
1.7.11选择IDGenteator为assigned
单击下一步
1.7.12打红圈的地方如果表是one-to-many或many-to-one就选择,工具会自动将关联的表的javabean和映射文件也导进来。
单击完成。
1.7.13新建一个util包,在util包里建一个BeanFactory的类
publicclassBeanFactory
{
/**
*
*@parambeanname要得到的BEAN的ID名
*@paramscWEB容器的实例
*@return
*/
publicstaticObjectgetBean(Stringbeanname,ServletContextsc)
{
ApplicationContextac=WebApplicationContextUtils.getWebApplicationContext(sc);
returnac.getBean(beanname);
}
}
这个类负责从ApplicationContext中得到一个bean。
1.7.14建一个接口
packagelogic;
importbeans.Customer;
publicinterfaceLogic
{
publicvoidadd(Customerc);
publicvoidmod(Customerc);
publicvoiddel(Customerc);
publicCustomerquery(Stringusername);
}
1.7.15建一个逻辑类
packagelogic;
importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;
importbeans.Customer;
publicclassCustomerLogicextendsHibernateDaoSupportimplementsLogic{
publicvoidadd(Customerc)
{
this.getHibernateTemplate().save(c);
}
publicvoiddel(Customerc){
//TODOAuto-generatedmethodstub
}
publicvoidmod(Customerc){
//TODOAuto-generatedmethodstub
}
publicCustomerquery(Stringusername){
//TODOAuto-generatedmethodstub
returnnull;
}
}
这个类继承HibernateDaoSupport,HibernateDaoSupport有一个属性sessionFactory,这个类要在applicationContext.xml中配置,如下
1.7.16建一个Action
packagestruts.action;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importlogic.Logic;
importorg.apache.struts.action.Action;
importorg.apache.struts.action.ActionForm;
importorg.apache.struts.action.ActionForward;
importorg.apache.struts.action.ActionMapping;
importstruts.form.AddForm;
importutil.BeanFactory;
importbeans.Customer;
/**
*MyEclipseStruts
*Creationdate:
10-17-2007
*
*XDocletdefinition:
*@struts.actionpath="/add"name="addForm"input="/add.jsp"scope="request"validate="true"
*@struts.action-forwardname="succ"path="/succ.jsp"
*/
publicclassAddActionextendsAction{
publicActionForwardexecute(ActionMappingmapping,ActionFormform,
HttpServletRequestrequest,HttpServletResponseresponse)
{
AddFormaddForm=(AddForm)form;
Customercvo=newCustomer();
cvo.setAge(addForm.getAge());
cvo.setSex(addForm.getSex());
cvo.setUsername(addForm.getUsername());
Logicf=(Logic)BeanFactory.getBean("customerLogic",this.getServlet().getServletContext());
f.add(cvo);
returnmapping.findForward("succ");
}
}
1.7.17新建一个form
packagestruts.form;
importjavax.servlet.http.HttpServletRequest;
importorg.apache.struts.action.ActionErrors;
importorg.apache.struts.action.ActionForm;
importorg.apache.struts.action.ActionMapping;
publicclassAddFormextendsActionForm{
//**sexproperty*/
privateStringsex;
/**ageproperty*/
privateLongage;
/**usernameproperty*/
privateStringusername;
publicActionErrorsvalidate(ActionMappingmapping,
HttpServletRequestrequest){
//TODOAuto-generatedmethodstub
returnnull;
}
/**
*Methodreset
*@parammapping
*@paramrequest
*/
publicvoidreset(ActionMappingmapping,HttpServletRequestrequest){
//TODOAuto-generatedmethodstub
}
/**
*Returnsthesex.
*@returnString
*/
publicStringgetSex(){
returnsex;
}
/**
*Setthesex.
*@paramsexThesextoset
*/
publicvoidsetSex(Stringsex){
this.sex=sex;
}
/**
*Returnstheage.
*@returnLong
*/
publicLonggetAge(){
returnage;
}
/**
*Settheage.
*@paramageTheagetoset
*/
publicvoidsetAge(Longage){
this.age=age;
}
/**
*Returnstheusername.
*@returnString
*/
publicStringgetUsername(){
returnusername;
}
/**
*Settheusername.
*@paramusernameTheusernametoset
*/
publicvoidsetUsername(Stringusername){
this.username=username;
}
}
1.7.18新建一个新增页面
<%@pagelanguage="java"pageEncoding="utf-8"%>
<%@tagliburi="http:
//jakarta.apache.org/struts/tags-bean"prefix="bean"%>
<%@tagliburi="http:
//jakarta.apache.org/struts/tags-html"prefix="html"%>
JSPforAddFormformformaction="/add">
username:
textproperty="username"/>
age:
textproperty="age"/>
sex:
selectproperty="sex">
optionvalue="1">男
option>
optionvalue="2">女
option>
select>
submit/>cancel/>
form>
1.7.19新建一个成功页面
<%@pagelanguage="java"pageEncoding="utf-8"%>
<%@tagliburi="http:
//struts.apache.org/tags-bean"prefix="bean"%>
<%@tagliburi="http:
//struts.apache.org/tags-html"prefix="html"%>
<%@tagliburi="http:
//struts.apache.org/tags-logic"prefix="logic"%>
<%@tagliburi="http:
//struts.apache.org/tags-tiles"prefix="tiles"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
htmllang="true">
base/>
succ.jsp
--
-->
操作成功
html>
1.8将工程发布到容器。
启动。
单击submit