1、StrutsSpringHibernate基本设置运用Struts框架实现系统的MVC三层系统的设计实现,主要就是运用了基于jstl标准的struts标签的jsp,统一的ActionServlet,以及复杂的业务逻辑处理和DB处理。通过Hibernate通过java的reflection技术通过db Xml配置以及增删改查等sql操作的封装接口来实现持久化数据的处理,能大大地简化开发时间。Spring通过控制反转技术,使系统技术框架实现松耦合,而且框架还实现了在事物处理上的封装等,使开发人员能够编写更干净、更可管理、并且更易于测试的代码。使用Eclipse以及相关插件,能迅捷的实现基于Stru
2、ts-Spring-Hibernate框架的系统开发。1 基本软件:Struts_lib:本例使用的是strtus1.2版,包括jar包以及tld文件。Hibernate:本例使用的是hibernate3Spring Lib:本例使用的是1.29版Eclipse:本例使用的是3.01版,带Lomboz Web开发插件 以及 Hibernate Synchronizer插件Mysql5.01数据库Tomcat5.0.28JDK1.5.0.062 本例中数据库实例用的是test数据库,用户名root,密码1234本例中创建了三张数据表:分别是class_info+-+-+-+-+-+-+| Fie
3、ld | Type | Null | Key | Default | Extra |+-+-+-+-+-+-+| id | int(11) | NO | PRI | NULL | auto_increment | name | varchar(20) | YES | | NULL | | teacher | varchar(20) | YES | | NULL | |+-+-+-+-+-+-+students+-+-+-+-+-+-+| Field | Type | Null | Key | Default | Extra |+-+-+-+-+-+-+| seq_id | int(11) |
4、NO | PRI | NULL | auto_increment | name | varchar(20) | YES | | NULL | | gender | varchar(10) | YES | | NULL | | gradeinfo | varchar(20) | YES | | NULL | |+-+-+-+-+-+-+classinfo_students+-+-+-+-+-+-+| Field | Type | Null | Key | Default | Extra |+-+-+-+-+-+-+| classid | int(11) | NO | PRI | NULL | |
5、 studentid | int(11) | NO | PRI | NULL | |+-+-+-+-+-+-+该表中给classid建立外键关联到class_info表的id字段该表中给studentid建立外键关联到students表的seq_id字段3 安装JDK,在系统环境中设置好JAVA_HOME的路径,以及把%JAVA_HOME%bin目录设置到path中在系统环境中设置好CATALINA_HOME以及TOMCAT_HOME,均指到Tomcat5.0.28的目录。4 在Eclipse中设置JDK,“windowpreferenceJavaComplier”在其中的Complie Co
6、mpliance level选择5.0在“windowpreferenceJavaInstalled JREs”中add JDK的名称以及目录不要选您安装的JRE在“windowpreferenceServerInstalled Runtimes”中Add Server Runtime for Tomcat5.0在“windowpreferenceTomcat”中设置Tomcat的Home等相关Tomcat的配置。5 新建Web工程:“FileNewProjecWebJ2EE Web Project”,选择Next进入以下界面 生成新的工程后,Open Java Perspective 同时c
7、opy spring hibernate struts_lib下的jar包到web-inf目录的lib中,再将struts_lib下的tld文件copy到到web-inf目录下在工程中选择lib下的所有jar,点击鼠标右键,然后按下图操作 这样就设置好了工程的class环境了。6 Spring + Hibernate的设置使用 选定工程,然后“FileNewOtherHibernateHibernate Configuration File”,选择next进入下个页面 输入密码后点击 Finish,在工程主目录下会生成一个hibernate.cfg.xml文件:!DOCTYPE hiberna
8、te-configuration PUBLIC -/Hibernate/Hibernate Configuration DTD/EN jdbc:mysql:/localhost:3306/test com.mysql.jdbc.Driver root 1234 org.hibernate.dialect.MySQLDialect false org.hibernate.transaction.JDBCTransactionFactory 然后再选择“FileNewOtherHibernateHibernate Configuration File”,点击next进入下页面,在页面中输入密码,然
9、后再“refresh”一下,显示table的信息,然后选择class_info,再在package中如图设置,具体设置参考下图即可。在该页面点击properties进入properties页面,在该页面中设置ID Generator为native,native的意思是按设置使用的数据库来自动处理,如果是mysql,db2,sqlserver等自增的主键自动按“identity”处理,其它还有sequence啊等等,这里用的mysql,所以也可以设置成identity。另外选上“Generate Sets to .”和“Use Lazy Loading”。点击finish,会在主目录下生成Cla
10、ssInfo.hbm.xml文件,将该文件copy到“com.kongfz.test.biz.classmgrbiz.dao” Package下。然后选定该XML文件,点击右键,选择“Hinernate SynchronizerSynchronize Files”,这样会在“com.kongfz.test.biz.classmgrbiz.dao” Package下自动生成ClassInfo类以及在该包下生成一个base包,在该包中生成BaseClassInfo类,这两个类是自动生成,其实可以完全合并。主要的类的定义在BaseClassInfo中,其中的一些基于Hibernate的Annotat
11、ion全部自动生成好了,基本不用修改按照以上例子生成Students相关的hbm文件和Bean文件。然后生成DAO(数据库访问处理)Interfacecom.kongfz.test.biz.classmgrbiz.dao. IClassInfoDAOcom.kongfz.test.biz.classmgrbiz.dao. IStudentsDAO以及上面接口的implements class:com.kongfz.test.biz.classmgrbiz.dao. ClassInfoDAOcom.kongfz.test.biz.classmgrbiz.dao. StudentsDAO根据示例程
12、序生成相关Dao的代码,代码很简单,除了特殊的需要使用到复杂查询以及联合查询的,需要自己按照HQL语法或者通常SQL语法操作执行外,其他基本一样,非常简单。另外再生成BizMgr(业务逻辑处理)Interfacecom.kongfz.test.biz.classmgrbiz.IClassSelectBizMgr以及上面接口的implements class:com.kongfz.test.biz.classmgrbiz.ClassSelectBizMgr业务处理会涉及对多个DAO的处理,在该BizMgr类中设置这些DAO接口成员对象以及对这些成员对象的set方法。根据示例程序生成相关BizMg
13、r的代码。代码主要涉及对DAO接口的调用处理,实现代码也非常的简洁简单,由于要使用spring框架来处理,所以这里也根本不必太考虑事务,只是要求把要求同一事物处理的操作放在BizMgr的同一个方法中即可。生成以上数据Bean/Dao/BizMgr的类以后,可以使用spring来配置,例如“com.kongfz.test.biz.classmgrbiz”下的spring.xml文件 com.mysql.jdbc.Driver jdbc:mysql:/localhost:3306/test root 1234 org.hibernate.dialect.MySQLDialect true com/
14、kongfz/test/biz/classmgrbiz/dao/ClassInfo.hbm.xml com/kongfz/test/biz/classmgrbiz/dao/Students.hbm.xml *BizMgr interceptor 然后再写一个测试的class,例如示例程序中的com.kongfz.test.biz.classmgrbiz.Mytes在Main方法中可以测试任何一个BizMgr的接口。7 Struts的使用首先设置生成的web工程下的web.xml文件,例如:web-app id=myTestWeb01 version=2.4 xmlns= xmlns:xsi=h
15、ttp:/www.w3.org/2001/XMLSchema-instance xsi:schemaLocation= myTestWeb01 com.kongfz.test.util.ApplicationListener action org.apache.struts.action.ActionServlet config /WEB-INF/struts-config.xml debug 2 2 action *.do logon.jsp /WEB-INF/struts-bean.tld /WEB-INF/struts-bean.tld /WEB-INF/struts-html.tld
16、/WEB-INF/struts-html.tld /WEB-INF/struts-logic.tld /WEB-INF/struts-logic.tld 然后再生成com.kongfz.test.action. LogonForm extends ActionForm以及com.kongfz.test.action. ClassForm extends ActionForm,其中的类属性成员名全部是原型页面中Form表单的输入项(input,select)标签的name属性名字,这命名必须一致,然后每个属性必须按照通用规则生成相应的set/get方法。再生成com.kongfz.test.action. LogonAction extends DispatchAction以及com.kongfz.test.action.ClassManagerAction extends DispatchAction,其中ClassManagerAction中因为涉及处理业务逻辑,所以需要定义一个IclassSelectBizMgr接口对象,以及该对象的
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1