1、 auth=Containerjavax.sql.DataSource driverClassName=com.microsoft.jdbc.sqlserver.SQLServerDriver url=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=pubs username=sa password=123456 maxActive=20 maxIdle=10 maxWait=10000/Context编写完成后,保存退出。再修改在eclipse中建立的web工程的web.xml文件,其代码如下:?xml version=1.0 en
2、coding=UTF-8web-app xmlns= xmlns:xsi=http:/www.w3.org/2001/XMLSchema-instance version=2.4 xsi:schemaLocation= resource-refres-ref-namejdbc/pubsres-typejavax.sql.DataSourceres-authContainer/resource-ref/web-app3,在数据库的查询分析其中建立emp表create table emp( eid int identity primary key, ename varchar(50), addre
3、ss varchar(100)4,在eclipse中使用myeclipse中先加入Hibernate组件,并使用数据库查看器建立与mssql server的连接,要求能够看到数据库的emp表。5,添加spring组件,并加入Hibernate的sessionFactory,用spring管理Hibernate的数据库连接。这时系统会自动生成applicationContext.xml文件。6,使用Myeclipse自带的数据库浏览视图,将emp表生成为相应得持久化类在生成过程中,选择生成spring的dao类,生成完成后会出现如下的结构:其中EmpDAO的代码如下:package com.po
4、;import java.util.List;import mons.logging.Log;import mons.logging.LogFactory;import org.hibernate.LockMode;import org.springframework.context.ApplicationContext;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;/* * Data access object (DAO) for domain model class Emp. * see com.
5、po.Emp * author MyEclipse - Hibernate Tools */public class EmpDAO extends HibernateDaoSupport private static final Log log = LogFactory.getLog(EmpDAO.class); /property constants public static final String ENAME = ename; public static final String ADDRESS = address protected void initDao() /do nothin
6、g public void save(Emp transientInstance) log.debug(saving Emp instance); try getHibernateTemplate().save(transientInstance);save successful catch (RuntimeException re) log.error(save failed, re); throw re; public void delete(Emp persistentInstance) deleting Emp instance getHibernateTemplate().delet
7、e(persistentInstance);delete successfuldelete failed public Emp findById( java.lang.Integer id) getting Emp instance with id: + id); Emp instance = (Emp) getHibernateTemplate() .get(com.po.Emp, id); return instance;get failed public List findByExample(Emp instance) finding Emp instance by example Li
8、st results = getHibernateTemplate().findByExample(instance);find by example successful, result size: + results.size(); return results;find by example failed public List findByProperty(String propertyName, Object value) finding Emp instance with property: + propertyName + , value: + value); String qu
9、eryString = from Emp as model where model. + propertyName + = ? return getHibernateTemplate().find(queryString, value);find by property name failed public List findByEname(Object ename) return findByProperty(ENAME, ename); public List findByAddress(Object address) return findByProperty(ADDRESS, addr
10、ess); public Emp merge(Emp detachedInstance) merging Emp instance Emp result = (Emp) getHibernateTemplate() .merge(detachedInstance);merge successful return result;merge failed public void attachDirty(Emp instance) attaching dirty Emp instance getHibernateTemplate().saveOrUpdate(instance);attach suc
11、cessfulattach failed public void attachClean(Emp instance) attaching clean Emp instance getHibernateTemplate().lock(instance, LockMode.NONE); public static EmpDAO getFromApplicationContext(ApplicationContext ctx) return (EmpDAO) ctx.getBean(EmpDAO7,添加struts组件,并建立EmpAction,用于测试最终的结果。EmpAction代码如下:/*
12、* Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtlpackage com.struts.action;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts
13、.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.springframework.context.support.*;import org.springframework.web.context.ContextLoader;import org.springframework.web.struts.DelegatingActionProxy;import com.po.*;/* * MyEclipse Struts * Creation date: 03-05-2007 * * XDoc
14、let definition: * struts.action validate=public class EmpAction extends Action /* * Generated Methods /* * Method execute * param mapping * param form * param request * param response * return ActionForward private EmpDAO edao; public ActionForward execute(ActionMapping mapping, ActionForm form, Htt
15、pServletRequest request, HttpServletResponse response) / TODO Auto-generated method stub Emp emp=new Emp(); edao=this.getEdao(); emp.setEname(hello emp.setAddress(good edao.save(emp); return null; public EmpDAO getEdao() return edao; public void setEdao(EmpDAO edao) this.edao = edao;8,将action组件注入到sp
16、ring的applicationContext.xml文件中。9,修改struts-config.xml文件,加入applicationContext.xml的路径(使用spring的插件来完成对applicationContext.xml文件的加载),并使用spring的struts代理类来代理Action,最终struts-config.xml文件的代码如下所示:DOCTYPE struts-config PUBLIC -/Apache Software Foundation/DTD Struts Configuration 1.1/EN/jakarta.apache.org/struts
17、/dtds/struts-config_1_1.dtdstruts-configdata-sources /form-beans /global-exceptions /global-forwards /action-mappings action path=/emporg.springframework.web.struts.DelegatingActionProxy /action-mappingsmessage-resources parameter=com.struts.ApplicationResourcesplug-in className=org.springframework.
18、web.struts.ContextLoaderPlugInset-property property=contextConfigLocation value=/WEB-INF/applicationContext.xml/plug-in/struts-config10,在spring的applicationContext.xml文件中加入数据源dataSource,使用tomcat5.5.9中配置的JNDI数据源,则完整的applicationContext.xml文件如下所示:DOCTYPE beans PUBLIC -/SPRING/DTD BEAN/EN/www.springframe
19、work.org/dtd/spring-beans.dtdbeansbean id=dataSource class=org.springframework.jndi.JndiObjectFactoryBean property name=jndiName java:comp/env/jdbc/pubs/property/beansessionFactoryorg.springframework.orm.hibernate3.LocalSessionFactoryBeanref bean=hibernatePropertiesprops prop key=hibernate.dialectorg.hibernate.dialect.SQLServerDialect/propsmappingResourceslistcom/po/Emp.hbm.xml class=com.po.EmpDAObean name=com.struts.action.EmpActionedao/beans配置图如下所示:最后,启动tomcat5.5.9测试我们的工程,在ie中测试如下所示,若果没有出现错误提示,则说明测试通过,否则,按上述步骤,重新检查配置过程。