您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 最详细的ssh框架整合讲解
基于Myeclipse6.5的SSH框架整合Mx251842012-08-141、文章目的最近整合SSH框架,期间遇到很多问题,中途几次熬夜查找,精神几度崩溃,心想如此好的框架为啥搭建整合的时候确实如此费劲,在网上找了很多解决方案,均不能解决问题。为了以后让想学SSH的人少走点弯路,故此次将整个完整搭建步骤写出来,供大家分享,希望对大家有所帮助。2、运行环境1、jdk-6u1-windows-i586-p2、MyEclipse_6.5.0GA_E3.3.2_Installer_A3、apache-tomcat-6.0.13.exe4、mysql-essential-5.1.53-win325、数据库脚本程序createdatabaseSSH;createtableuser(idint(11)notnullauto_increment,usernamevarchar(50)defaultnull,passwordvarchar(50)defaultnull,primarykey(id));insertintouservalues('1','admin','admin');具体环境搭建基本上就是下载安装,继续流程就不在详细说明了,一般网上都可以查到。3、创建项目工程再打开的Myeclipse中,新建Webproject,项目名字我们起名Myssh,J2EESqecificationLevel选择JavaEE5.0,然后点击Finish即可。4、添加Struts1.2框架支持接下来我们将添加Struts框架支持,在项目Myssh上面右键,选择MyeclipseAddStrutsCapabilities…在弹出的AddStrutsCapabilities对话框中修改Basepackagefornewclasses中的路径为com.Myss.struts,其他不变,点击finish即可完成添加后的项目路径结构为:5、添加spring2.5框架支持和添加struts框架一样,在项目Myssh上面右键,选择MyeclipseAddSpringCapabilities…在弹出的AddSpringCapabilities对话框中选择Springversion:Spring2.5由于Spring采用的最小化发布方式,使得Spring的库文件是分离的,所以我们要选择自己需要添加的库:选择好点击next,然后修改folder路径为:WebRoot/WEB-INF点击finish即可此时项目结构为:6、配置数据源在Myeclipse右上角打开MyeclipseDatabaseExplorer数据库管理视图。在左侧的DBBrowser中右击New打开新建对话框在DatabaseDriver中,配置内容如下:选择DriverTemplate为MySQL,然后根据事情情况写URL,这里我们是本机操作,所以写为localhost下的ssh,Username和password根据数据库实际填写。然后添加数据库驱动程序AddJARs,为了方便我这里选择了保存密码Savepassword。然后点击finish即可。7、Spring和hibernate的整合配置完数据源就可以添加hibernate支持了,切换视图到Myeclipsejavaenterprise下,在Myssh工程上右击,选择MyeclipseAddHibernateCapabilities..这一步我们选择默认即可点击Next对话框中选择Springconfigurationfile,表示我们希望将Hibernate托管给Spring进行管理,然后点击Next;在出现的对话框中询问我们是否新建一个Spring配置文件,我们选择:ExistingSpringconfigurationfile。因为我们已经添加了Spring的配置文件了,所以我们选择已存在的配置文件即可,Myeclipse自动回查找,然后输入MysessionFactory,点击Next在对话框中输入Beanid数据源在Spring中的BeanID的名字:datasource。然后选择DBDriver里面我们之前配置的Myssh后,Myeclipse会自动完成其他的填写。点击Next在对话框中取消创新新的hibernatesessionfactory,点击Finish即可。Myeclipse自动默认打开Spring配置文件:applicationContext.xml此时项目结构:切换到MyeclipseDatabaseExplorer视图,双击打开数据库连接,找到表user,然后右击表格,选择HibernateReversEngineering..在对话框中修改Javasrcfolder路径为我们建立的/Myssh/src,然后填写javapackage名称:com.Myssh.user选择CreatePOJO,选择javaDataObject,选择JavaDataAccessObject点击Next在出现的对话框中选择IdGenerator为native,然后点击Finish此时项目结构为下图所示,其中User.java是myeclipse生成的使用面向对象的java语言对数据库表格进行的抽象,User.hbm.xml是将数据库表格中的字段和POJO类的属性进行映射的定义,UserDAO.java封装了一些Myeclipse自动生成的对数据库的操作。这是我们修改一下文件目录,新建一个dao包,将DAO类与POJO类分开,然后我们在Struts包下面建立action和form包。为了将实现与接口进行解耦,我们在dao包下面添加接口,然后创建dao.impl包,将实际的DAO类放在这里,DAO类是直接与数据库打交道的类。为了对业务逻辑进行封装,我们将业务逻辑全部写在Service类里面,和dao一样,我们建立service包,里面添加业务接口,具体实现放在service.impl里面。将UserDAO.java移动到dao的Impl包下面,并在dao包下面建立接口IUserDAO:packagecom.Myssh.dao;importjava.util.List;importjavax.xml.registry.infomodel.User;publicinterfaceIUserDAO{publicUserfindById(Integerid);publicListfindByUsername(Objectusername);publicvoidsave(Useruser);}UserDAO是自动生成的,我们可以简单的修改一下。让UserDAO实现接口IuserDAO,不然在启动Spring的时候会报错。publicclassUserDAOextendsHibernateDaoSupportimplementsIUserDAO{privatestaticfinalLoglog=LogFactory.getLog(UserDAO.class);//propertyconstantspublicstaticfinalStringUSERNAME=username;publicstaticfinalStringPASSWORD=password;protectedvoidinitDao(){//donothing}publicvoidsave(Useruser){log.debug(savingUserinstance);try{getHibernateTemplate().save(user);log.debug(savesuccessful);}catch(RuntimeExceptionre){log.error(savefailed,re);throwre;}}publicvoiddelete(UserpersistentInstance){log.debug(deletingUserinstance);try{getHibernateTemplate().delete(persistentInstance);log.debug(deletesuccessful);}catch(RuntimeExceptionre){log.error(deletefailed,re);throwre;}}publicUserfindById(java.lang.Integerid){log.debug(gettingUserinstancewithid:+id);try{Userinstance=(User)getHibernateTemplate().get(com.Myssh.user.User,id);returninstance;}catch(RuntimeExceptionre){log.error(getfailed,re);throwre;}}publicListfindByExample(Userinstance){log.debug(findingUserinstancebyexample);try{Listresults=getHibernateTemplate().findByExample(instance);log.debug(findbyexamplesuccessful,resultsize:+results.size());returnresults;}catch(RuntimeExceptionre){log.error(findbyexamplefailed,re);throwre;}}publicListfindByProperty(StringpropertyName,Objectvalue){log.debug(findingUserinstancewithproperty:+propertyName+,value:+value);try{StringqueryString=fromUserasmodelwheremodel.+propertyName+=?;returngetHibernateTemplate().find(queryString,value);}catch(RuntimeExceptionre){log.error(findbypropertynamefailed,re);throwre;}}publicListfindByUsername(Objectusername){returnfindByProperty(USERNAME,username);}publicListfindByPassword(Objectpassword){returnfindByProperty(PASSWORD,password);}publicListfindAll(){log.debug(findingallUserinstances);try{StringqueryString=fromUser;returngetHibernateTemplate().find(queryString);}catch(RuntimeExceptionre){log.error(findallfailed,re);throwre;}}publicUsermerge(UserdetachedInstance){log.debug(mergingUserinstance);try{Userresult=(User)getHibernateTemplate().merge(detachedInstance);log.debug(mergesuccessful);returnresult;}catch(RuntimeExceptionre){log.error(mergefailed,re);throwre;}}publicvoidattachDirty(Userinstance){log.debug(attachingdirtyUserinstance);try{getHibernateTemp
本文标题:最详细的ssh框架整合讲解
链接地址:https://www.777doc.com/doc-6160023 .html