ssh三大框架的作用以及数据库连接.docx

上传人:牧羊曲112 文档编号:3166219 上传时间:2023-03-11 格式:DOCX 页数:8 大小:40.69KB
返回 下载 相关 举报
ssh三大框架的作用以及数据库连接.docx_第1页
第1页 / 共8页
ssh三大框架的作用以及数据库连接.docx_第2页
第2页 / 共8页
ssh三大框架的作用以及数据库连接.docx_第3页
第3页 / 共8页
ssh三大框架的作用以及数据库连接.docx_第4页
第4页 / 共8页
ssh三大框架的作用以及数据库连接.docx_第5页
第5页 / 共8页
亲,该文档总共8页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《ssh三大框架的作用以及数据库连接.docx》由会员分享,可在线阅读,更多相关《ssh三大框架的作用以及数据库连接.docx(8页珍藏版)》请在三一办公上搜索。

1、ssh三大框架的作用以及数据库连接一。详细分析spring+hibernate+struts作用?1。struts是框架的表现层,Struts是对MVC构架的具体实现Struts的MVC三层结构:(1)视图层:Struts采用JSP作为MVC的视图。每一视图都是采用了定制标签库的JSP页面,这些定制标签库则由Struts框架提供。全部表单元素都是用定制标签编码的,所以这些页面能够很方便地同控制器交互。每一个表单都通过映射JSP到Servlet的请求这一方式指向控制器特定入口点。(2)控制层:控制器就是Java Servlet,由Struts框架提供,负责视图和模型之间的交互。控制器的每个入口点

2、都由名为struts-config.xml的配置文件设置。该文件把来自视图的请求映射为特定的Java类以进行相应的处理,控制器还指定下一个视图的位置。(3)模型层:JavaBean就是模型的代表。对进入控制器的每个入口点来说,Bean的作用是存储从视图获取的信息,同时被称为“动作类”,一种Java类则被指定为对表单输入采取行动。动作类实现了业务逻辑。下面是Struts在框架结构中所负责的工作: (1) 为用户管理请求和响应;(2) 提供一个控制器代理调用业务逻辑和其它上层处理;(3) 处理从其它层掷出给一个Struts Action的异常;(4) 为显示提供一个模型;(5) 执行用户接口验证。

3、2.Spring实现了反转控制和面向方面编程(Achievement-Oriented Programming)。Spring框架的能实现应用的分层架构,在应用中要使用的对象可以被一个简单的XML文件连在一起,这个XML文件含有到像事务管理器、对象工厂、包含业务逻辑的服务对象、和数据存取对象这些对象的引用。Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式,其主要优势有如下几点:(1) Spring能有效地组织你的中间层对象。 (3) 通过一种在不同应用程序和项目间一致的方法来处理配置文件,消除

4、各种自定义格式的属性文件的需要,仅仅需要看看类的JavaBean属性。反转控制的使用帮助完成了这种简化。(4) Spring能够帮助我们真正意义上实现针对接口编程。(5) Spring的设计会让使用它创建的应用尽可能少的依赖于它的APIs,在Spring应用中的大多数业务对象没有依赖于Spring。 (6) 使用Spring构建的应用程序易于单元测试。 (7) Spring使EJB成为一个实现选择,而不是必需的选择。你可以用POJO或当地EJB来实现业务接口,却不会影响到调用代码。 (8) Spring能使用AOP提供声明性事务管理,可以不直接操作JTA也能够对事务进行管理。(9) Sprin

5、g为数据存取提供了一个一致的框架,不论是使用JDBC还是O/R mapping的产品。(10) MVC Web框架,提供一种清晰,无侵略性MVC实现方式。Spring业务层在框架中负责下面这些事情:(1) 管理事务;(2) 预留和其它层交互的接口;(3) 管理业务层对象之间的依赖;(4) 增加在表现层和持久层之间的灵活性,使它们互不直接通讯;(5) 从表现层中提供一个上下文给业务层获得业务服务;(6) 管理从业务逻辑到持久层的实现;(7) 处理应用程序的业务逻辑和业务验证;Hibernate是一种ORM映射工具,它不仅提供了从Java类到数据表之间的映射,也提供了数据查询和恢复机制。相对于使用

6、JDBC和SQL来手工操作数据库,使用Hibernate,可以大大减少操作数据库的工作量。Hibernate可以和多种Web服务器或者应用服务器良好集成。Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,Hibernate还可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate框架的优势有下面几点:(1) Hibernate具

7、有可扩展性;(2) Hibernate既适用于独立的Java程序,也适用于Java Web应用,而且还可以在J2EE架构中取代CMP,完成持久化任务,Hibernate能集成到会话EJB和基于BMP的实体EJB中;(3) Hibernate可以和多种WEB服务器,应用服务器良好集成,并且支持所有的数据库服务器;(4) Hibernate有详细的参考文档,使用方便,容易上手。下面是Hibernate持久层在框架中所负责的工作:(1) 查询相关的信息成为对象。Hibernate通过HQL的面向对象的查询语言或者使用条件表达式API来做这个事情。HQL非常类似于SQL。只是把SQL里的table和c

8、olumns用Object和它的fields代替;(2) 保存、更新、删除储存在数据库中的信息; Hibernate这样的高级“对象关系”映射框架提供对大多数主流SQL数据库的支持,它们支持“父/子”关系、事务处理、继承和多态。域对象层主要做两件事:(1) 编写相关接口: DAO类一般要使用Spring的声明式事务机制,而声明式事务机制是使用Spring AOP来实现的。Spring AOP默认使用的Java动态代理必须基于接口。本系统是面向接口编程;(2)实现相关接口:在实现接口的同时,需要继承HibernateDaoSurpport类,这样可以省去对SessionFactory与Hiber

9、nateTemplate的处理。二。总概括spring+hibernate+struts作用1.struts就是一个mvc的架构,在控制器,视图和模型方面都有其特定的组件,所以我们在SSH组合中,更多的是利用了controller这个组件。很多人感觉上是利用Struts的View层,的确是这样的,因为我们应用了很多struts的标签,整个页面的工作核心还是在表单提交给action controller的动作上,而在struts的定义中,这是属于C这一层的。所以我们利用的确是controller。2.spring的话最主要的功能还是它的ioc和aop,即注入依赖和面向切面编程它也有其自己的mvc

10、,当然你可以用struts框架而不用spring的mvc. 3.Hibernate还可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任,使用Structs+Spring+Hibernate的项目主要是在web层利用了struts的mvc框架,在数据库层用hibernate的数据库访问功能,在bean管理和服务方面利用spring的ioc和aop.数据表的连接有: 1、内连接(自然连接): 只有两个表相匹配的行才能在结果集中出现 2、外连接: 包括 左外连接 (左边的表不加限制) 右外连接(右边的表不加限制) 全外连接(左右两表都不加限制) 3、自连接(连接发生在一 张基表内) s

11、ql标准语法:select table1.column,table2.columnfrom table1 inner | left | right | full join table2 on table1.column1 = table2.column2;inner join 表示内连接;left join表示左外连接;right join表示右外连接;full join表示完全外连接;on子句用于指定连接条件。注意,如果使用from子句指定内、外连接,则必须要使用on子句指定连接条件;如果使用操作符指定外连接,则必须使用where子句指定连接条件。如果主表的主键列和从表的外部键列名称相同,那

12、么可以使用 natural join 关键字自动执行内连接操作。select dname,ename from dept natural join emp;select a.studentno, a.studentname, b.classname from students a, classes b where a.classid(+) = b.classid; STUDENTNO STUDENTNAM CLASSNAME - - - 1 周虎 一年级一班 2 周林 一年级二班 一年级三班 以上语句是右连接: 即(+)所在位置的另一侧为连接的方向,右连接说明 等号右侧的所有 记录均会被显示,

13、无论其在左侧是否得到匹配。也就是说上例中,无 论会不会出现某个班级没有一个学生的情况,这个班级的 名字都会在 查询结构中出现。 反之: select a.studentno, a.studentname, b.classname from students a, classes b where a.classid = b.classid(+); STUDENTNO STUDENTNAM CLASSNAME - - - 1 周虎 一年级一班 2 周林 一年级二班 3 钟林达 则是左连接,无论这个学生有没有一个能在一个班级中得到匹配的部门号, 这 个学生的记录都会被显示。 select a.stu

14、dentno, a.studentname, b.classname from students a, classes b where a.classid = b.classid; 这个则是通常 用到的内连接,显示两表都符合条件的记录。总之, 左连接显示左边全部的和右边与左边相同的 右连接显示右边全部的和左边与右边 相同的 内连接是只显示满足条件的! .-补充:使用的注意事项:1.操作符只能出现在where子句中,并且不能与outer join语法同时使用。2.当使用操作符执行外连接时,如果在where子句中包含有多个条件,则必须在所有条件中都包含操作符。3.操作符只适用于列,而不能用在表达式上。4.操作符不能与or和in操作符一起使用。5.操作符只能用于实现左外连接和右外连接,而不能用于实现完全外连接。for example:select a.dname,b.ename from dept a,emp b where a.deptno = b.deptno and b.deptno = 10;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号