添加Struts支持、Spring支持、Hibernate支持,都是右键工程——MyEclipse——Add****。
(1)选择Struts2.1,URL pattern选择/*
然后Next------------------------------------------------------------
(2)选择Struts 2 的核心库
Finish完成Struts支持的添加----------------------------------------------------
(1)Spring Version(Spring的版本)选择Spring 3.0。
添加6个库,AOP、Core、Persistence Core、Persistence JDBC、J2EE、Web。
JAR Library Installation 选择Copy........
然后nex---------------------------------------------------------t
(2)勾掉Enable AOP Builder(第一项),finish
(1)建立数据库链接(是建立一个链接)
如果没有数据库链接,则新建一个(这里是新建)。
①Driver template选择合适的数据库链接方式,这里选择MySQL Connector/J;
②Driver name是驱动名称,数据库连接名,起一个合适的就行;
③Connection URL要相应改一下,这里要把(dbname是你要连的数据库的名字),改成
;
④填写连接数据库的用户名和密码
⑤Add Jars添加数据库驱动jar包。
Finish就行了----------------------------------------------------------
(2)打开数据库
这里是新建立的数据库链接
可以双击打开,看一下已经有的数据库
回到PackageExplorer界面,添加Hibernate支持
(1)选择Hibernate 3.3,勾选MyEclipse Libraries,下面勾选Hibernate的3个库,Hibernate 3.3 Annotations & Entity Manager、Hibernate 3.3 Core Libraries、Hibernate 3.3 Advanced SupportLibraries,然后JAR Library Installation 选择Copy checked............
Next------------------------------------------
(2)配置文件选择Spring configuration file
Next----------------------------------------------
(3)选择Existing Spring configuration file
Next-----------------------------------------------------------------------------------
(4)在DB Driver中选择刚建立数据库连接
Next-----------------------------------------------------------
(5)把Create SessinFactory class勾掉,不建立SessionFactory类;
到此环境搭建好了!!!但是还没完!!!
对框架的理解
(1)总体来说,原理流程如下(当然也是按照当前水平理解,并不一定对):
(2)按照当前的学习,对ssh框架各个部分的理解如下(当然不一定对。。。。。。)
1.Entity中就是定义了各个实体,实体中按照数据库中每个实体的属性列定义了成员变量,类中还包括该类的构造方法和变量的set、get方法。
2.Action是与前台(比如JSP)沟通的桥梁,前台表单中的数据通过action传给后台。前台数据与action中定义的成员变量对应起来,在action中添加set、get方法。还要定义service类的对象作为成员变量,这里我理解为action类通过set、get方法来获取service对象以连接service,这也是前后台联系的桥梁。
3.Service(即为上面的impl)包中的各个service类中也与上面action类似,要定义对应dao层类的对象作为自己的成员变量,还需声明对应的dao层接口。通过重写接口中的方法,并在重写方法中用dao的对象点取方法(函数),来调用dao中的具体实现了的方法。
4.Interfaces即为dao层接口,其中的各个类声明了该类中的dao层方法(函数),这些方法主要是对数据库中的操作(增删查改)的方法,service中的类需要声明对应的interface,并重写对应interface中的方法。这些方法的具体实现显然是在dao中。
5.dao中按照数据库中的各个属性列定义自己的成员变量,并进行数据库的操作(增删查改),这些操作可以通过反向工程生成,完成这些操作的方法(函数)都是interfaces中声明的方法的具体实现。(dao类要继承Hibernate支持这个父类,即要extends HibernateDaoSupport)。
1.切换到数据库页面,找到你要反向工程的表
2.右键该表——Hibernate Reverse Engineering;
在Java srcfolder中选择你要放置的位置,这里选择实体包(即entity包,后面还要改的);
勾选CreatePOJO<>DB Table mapping information;
勾选Java DataObject(POJO<>DBTable),取消选择其下面的Createabstract class;
勾选Java DataAccess Object(DAO);
Next-----------------------------------------------------
3.Id Generator里选择increment,其他不管。(下面四个勾选框应该是如果表存在对应关系时选的,一对一, 多对多,多对一之类的那些,这里我的都是单表,就没有选)
Finish--------------------------------------------------------------
4.完成之后,发现entity下面多了这些东西
5.然后就把UserDAO移动到dao的包下面,变成这样
反向工程生成完毕后,Dao包和Entity包有内容了。再写其他的包,其它的包也有自动生成的方法,如下。
1.接口包
前面介绍,interfaces是dao层的interfaces,所以它里面声明的方法都是dao层的方法。首先右键刚反向工程建立好的Dao类(这里也就是UserDAO)——Refactor——Extract interface....然后,在出来的页面接着往下做。。。。。
Interface neme给接口起个名字,这里我写UserInterfaces。别的先不管,然后下面在Members to declare inthe interface里面选择你要生成的变量或方法的接口。OK!
OK之后,发现DAO包里又多了一个java文件,就是刚生成的接口类,要把它移动到interfaces包里去。
2.Service包(这里是impl)
这个包要自己写,且要声明接口包里的那些对应的接口类
在该包下新建类,类名我写的UserService;
在Interfaces里面点Add,输入你要引入的接口类名字,选择,OK,Finish!
Service包下面多了一个类,就是刚建的那个
下面要编写这个类,就像前面说的,用定义DAO类的对象,点取调用dao中的具体方法。每个方法都要写。注意还要有dao对象的set、get方法!
3.action包
写action之前要把jsp页面写出来,这里以登录为例,写了两个jsp页面,一个登陆界面,一个欢迎界面用作跳转。注意要把编码格式改为utf-8
这里的数据交互变量的名字前后台要对应,即jsp中和action中的成员变量名要对应一致
处理方法的返回结果要跟struts.xml文件中result的name一致!
Action中还要有变量的set、get方法,登录功能的方法在最下面,注意要抛出异常。
4.配置文件
Action写完就要写配置文件了。
(1)struts.xml文件
注意:struts.xml里的action的name要跟JSP页面中form表单里的action对应一致!
struts.xml里的action的method,可以理解为处理方式,要跟action中的方法(函数)名对应一致!
struts.xml里的action的result用来控制跳转,他的名字要与action中方法的返回结果保持一致!
(2)applicationContext.xml文件
在前面的配置过程中,该文件里面有一部分内容已经自动生成,不过还有些内容需要自己写。该文件的内容就体现了该框架的层次关系,即前面总结的这个关系:
蓝色矩形中大的两个bean是自己写的,上面一个bean是之前自动生成的。黑色箭头体现了层层调用的关系。
注意:1.下层bean的id要与上层的ref保持一致!(黑色单、双下划线部分的内容)
2.每层bean中property的 name要与该bean的class(即这层对应的类)中定义的上层类的实体保持一致!(如上面,UserService这个bean中的property name为userDao,则在impl包下的UserService类中也定义了一个名为userDao的UserDAO对象。UserAction这个bean也一样,在UserAction这个类中,必定定义了一个SuerService的对象叫userService)特别注意:每层的类中定义上层类的对象必要有set、get方法,不然配置文件会报错!