ssh框架中的数据流向ssh是什么么样的?

介绍ssh 框架的各个层次 ???????????????????????
[问题点数:80分,结帖人bill]
介绍ssh 框架的各个层次 ???????????????????????
[问题点数:80分,结帖人bill]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。spring+struts2+hibernate3同时操作多个数据库,具体点就是同时从多个不同的数据库中查询数据显示在页面上。
这里设计到多个数据源。可不可以这样在applicationcontext.xml中配置多个sessionfactory和多个datasource?
在后台怎样获取所有数据库的所有session呢?
事物又怎么配置?
是不是还得应用多线程呢?
如果能给出例子,将不胜感激!
问题补充:AngelAndAngel 写道你可以这样做:
一、首先配置hibernate数据源:
1.&?xml version="1.0" encoding="UTF-8"?&
2.&!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"&
&!--1、Oracle 数据源配置--&
&bean id="oraclesessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&
&property name="configLocation"&
&value&WEB-INF/classes/oracle-h.cfg.xml&/value&
&/property&
&bean id="oracletransactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"&
&property name="sessionFactory"&
&ref local="sessionFactory" /&
&/property&
15.&!--2、SQLServer 数据源配置--&
&bean id="sqlServersessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&
&property name="configLocation"&
&value&WEB-INF/classes/sqlserver-h.cfg.xml&/value&
&/property&
&bean id="sqlServerTransactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"&
&property name="sessionFactory"&
&ref local="sqlServersessionFactory" /&
&/property&
26.&!--3、其他数据源配置--&
27..................
28. 2、配置spring的事务拦截器(AOP):
1.&!--1、oracle数据源 事务管理拦截器--&
&tx:advice id="oracleTxAdvice" transaction-manager="oracletransactionManager"&
&tx:attributes&
&tx:method name="find*" read-only="true"/&
&tx:method name="get*" read-only="true"/&
&tx:method name="notx*" propagation="NEVER"/&
&tx:method name="*" rollback-for="自定义Exception"/&
&/tx:attributes&
&/tx:advice&
9.&!--2、sqlserver数据源 事务管理拦截器--&
&tx:advice id="sqlserverTxAdvice" transaction-manager="sqlservertransactionManager"&
&tx:attributes&
&tx:method name="find*" read-only="true"/&
&tx:method name="get*" read-only="true"/&
&tx:method name="notx*" propagation="NEVER"/&
&tx:method name="*" rollback-for="自定义Exception"/&
&/tx:attributes&
&/tx:advice&
17.&!--3、其他数据源 事务管理拦截器--&
18..................
19.&!--配置多数据源的事务拦截器--&
&bean id="serviceAutoProxyCreator" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"&
&property name="beanNames"&
&value&*Service&/value&
&/property&
&property name="interceptorNames"&
&value&oracleTxAdvice&/value&
&value&sqlServerTxAdvice&/value&
&value&XXXXXTxAdvice&/value&
&/property&
后台怎么同时获取?
问题补充:AngelAndAngel 写道引用后台怎么同时获取?
不同数据源都配成
oraclesessionFactory
sqlServersessionFactory这样的了,和普通bean没什么区别啊,getBean不就得到了么。
excellent coder!我准备试一下,我用多线程,同时查询多个数据库,不知道你说的这个能不能满足。
采纳的答案
多线程注意别把数据源搞串了。
多数据源可以参考:
不过事务,不这么简单。楼上的配置的事务都是对单个数据源的,多个数据源整体的事务,可就是分布式事务了。不知道,作者说的事务配置到底需要怎么样的。
引用后台怎么同时获取?
不同数据源都配成
oraclesessionFactory
sqlServersessionFactory这样的了,和普通bean没什么区别啊,getBean不就得到了么。
你可以这样做:
一、首先配置hibernate数据源:
1.&?xml version="1.0" encoding="UTF-8"?&
2.&!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"&
&!--1、Oracle 数据源配置--&
&bean id="oraclesessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&
&property name="configLocation"&
&value&WEB-INF/classes/oracle-h.cfg.xml&/value&
&/property&
&bean id="oracletransactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"&
&property name="sessionFactory"&
&ref local="sessionFactory" /&
&/property&
15.&!--2、SQLServer 数据源配置--&
&bean id="sqlServersessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&
&property name="configLocation"&
&value&WEB-INF/classes/sqlserver-h.cfg.xml&/value&
&/property&
&bean id="sqlServerTransactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"&
&property name="sessionFactory"&
&ref local="sqlServersessionFactory" /&
&/property&
26.&!--3、其他数据源配置--&
27..................
28. 2、配置spring的事务拦截器(AOP):
1.&!--1、oracle数据源 事务管理拦截器--&
&tx:advice id="oracleTxAdvice" transaction-manager="oracletransactionManager"&
&tx:attributes&
&tx:method name="find*" read-only="true"/&
&tx:method name="get*" read-only="true"/&
&tx:method name="notx*" propagation="NEVER"/&
&tx:method name="*" rollback-for="自定义Exception"/&
&/tx:attributes&
&/tx:advice&
9.&!--2、sqlserver数据源 事务管理拦截器--&
&tx:advice id="sqlserverTxAdvice" transaction-manager="sqlservertransactionManager"&
&tx:attributes&
&tx:method name="find*" read-only="true"/&
&tx:method name="get*" read-only="true"/&
&tx:method name="notx*" propagation="NEVER"/&
&tx:method name="*" rollback-for="自定义Exception"/&
&/tx:attributes&
&/tx:advice&
17.&!--3、其他数据源 事务管理拦截器--&
18..................
19.&!--配置多数据源的事务拦截器--&
&bean id="serviceAutoProxyCreator" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"&
&property name="beanNames"&
&value&*Service&/value&
&/property&
&property name="interceptorNames"&
&value&oracleTxAdvice&/value&
&value&sqlServerTxAdvice&/value&
&value&XXXXXTxAdvice&/value&
&/property&
已解决问题
未解决问题225097人阅读
首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活、易于扩展的多层Web应用程序。
集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层(实体层)。
Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持。Spring一方面作为一个轻量级的IoC容器,负责查找、定位、创建和管理对象及对象之间的依赖关系,另一方面能使Struts和Hibernate更好地工作。
由SSH构建系统的基本业务流程是:
1、在表示层中,首先通过JSP页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。
2、在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。
3、在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。
采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。
下面我们再详细看一下组成SSH的这三个框架
一、Spring
1、什么是Spring?
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
2、Spring的特性
具体自己百度吧
所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码
3、为什么使用Spring?
Spring的以上特性使得开发人员使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
二、Struts
1、什么是Struts?
它通过采用 Java Servlet/JSP 技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。
2、Struts1的核心构成
在 Struts1 中,由一个名为 ActionServlet 的 Servlet 充当 控制器(Controller)的角色,根据描述模型、视图、控制器对应关系的 struts-config.xml 的配置文件,转发视图(View)的请求,组装响应数据模型(Model)。
在 MVC 的模型(Model)部分,经常划分为两个主要子系统(系统的内部数据状态与改变数据状态的逻辑动作),这两个概念子系统分别具体对应 Struts 1里的 ActionForm 与 Action 两个需要继承实现超类。在这里,Struts 1可以与各种标准的数据访问技术结合在一起,包括Enterprise Java Beans(EJB), JDBC 与 JNDI。
在 Struts 1的视图(View) 端,除了使用标准的JavaServer Pages(JSP)以外,还提供了大量的标签库使用,同时也可以与其他表现层组件技术(产品)进行整合,比如 Velocity Templates,XSLT 等。
通过应用 Struts 的框架,最终用户可以把大部分的关注点放在自己的业务逻辑(Action)与 映射关系的配置文件(struts-config.xml)中。
3、Struts1的基本执行流程
4、什么是struts2
Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品
5、strut2的体系结构
当Web容器收到请求(HttpServletRequest)它将请求传递给一个标准的的过滤链包括& 流程(ActionContextCleanUp)过滤器,然后经过Other filters(SiteMesh ,etc),
接下来需要调用FilterDispatcher核心控制器,然后它调用ActionMapper确定请求那个Action,ActionMapper返回一个收集Action详细信息的ActionMaping对象。
接下来FilterDispatcher将控制权委派给ActionProxy,ActionProxy调用配置管理器(ConfigurationManager) 从配置文件中读取配置信息(struts.xml),然后创建ActionInvocation对象,ActionInvocation在调用Action之前会依次的调用所用配置拦截器(Interceptor N) 一旦执行结果返回结果字符串ActionInvocation负责查找结果字符串对应的(Result)然后执行这个Result Result会调用一些模版(JSP)
来呈现页面,之后拦截器(Interceptor N)会在被执行(顺序和Action执行之前相反)最后响应(HttpServletResponse)被返回在web.xml中配置的那些过滤器和(核心控制器)(FilterDispatcher)。
6、为什么使用Struts?
首先,Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展,减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化
另外, struts具有页面导航功能,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。
7、&Struts1和Struts2的区别
三、Hibernate
1、什么是Hibernate?
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任
2、Hibernate核心构成
具体就不展开了
3、Hibernate基本执行流程
为什么使用Hibernate?
1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
2、Hibernate是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作,将软件开发人员从大量相同的数据持久层相关编程工作中解放出来,使开发更对象化了。
3、移植性好,支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了,不用改变hibernate代码。
4、支持透明持久化,因为hibernate操作的是纯粹的(pojo)java类,没有实现任何接口,没有侵入性。所以说它是一个轻量级框架。
最后附上SSH1和SSH2框架搭建的实例,点击即可下载
采用旧版本,详见代码中注释
全部采用最新版本,详见代码中注释
开发环境搭建,参照我的另一篇博客
一些说明:
索要代码的邮箱,我基本上都发过了,如果有漏发,请联系我。
还是希望大家去csdn下载页去下载。如果速度慢,可以去这里/s/1eQh7FXo
开发环境配置。http://blog.csdn.net/shan9liang/article/details/8807784
在war中,找到application-common.xml。修改数据源,指定自己的数据库即可。项目部署后,会自动映射表。
&!--配数据源 --&
&bean id=&dataSource& class=&mons.dbcp.BasicDataSource&
destroy-method=&close&&
&property name=&driverClassName& value=&oracle.jdbc.driver.OracleDriver& /&
&property name=&url& value=&jdbc:oracle:thin:@localhost:1521:orcl& /&
&property name=&username& value=&ssh& /&
&property name=&password& value=&ssh& /&
以上是oracle的配置。
如果使用其他数据库,请在lib目录下,加入驱动包。并修改数据源。
强烈建议:
https://code.csdn.net/shan9liang/tgb
这是在CSDN CODE托管的,采用ssh搭建的一个考勤管理系统,maven项目,比原来那个更规范了,建议用这个,而且我会持续更新,逐渐加入各种主流框架,相信我。
。不过不是eclipse项目,需要手工导入eclipse,最近特喜欢用intellij。建议直接用git clone。
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1168994次
积分:16782
积分:16782
排名:第273名
原创:296篇
转载:11篇
评论:3703条
文章:14篇
阅读:84218
阅读:12167
(2)(1)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(5)(4)(5)(4)(3)(6)(4)(2)(2)(5)(4)(13)(5)(17)(22)(5)(3)(4)(3)(2)(5)(13)(10)(4)(5)(7)(5)(4)(13)(12)(10)(9)(11)(22)(1)(1)(7)(6)ssh到数据库表_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
ssh到数据库表
上传于||暂无简介
阅读已结束,如果下载本文需要使用
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩22页未读,继续阅读
你可能喜欢当前访客身份:游客 [
当前位置:
最近在学java和mongodb,想采用一个比较好的框架来学习,最好有完整API和例子的
共有6个答案
<span class="a_vote_num" id="a_vote_num_
引用来自“缪斯的情人”的答案猜测你说的框架是ORM吧,我推荐
,轻量简单无第三方依赖。&看了下 还是觉得这个框架学习内容比较多,谢谢。
--- 共有 1 条评论 ---
其实很简单的一层封装,基于注解的,了解那些注解规则后也没有其他学习内容
(2年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
猜测你说的框架是ORM吧,我推荐
,轻量简单无第三方依赖。&
--- 共有 1 条评论 ---
我看看下,谢谢
(2年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
HIbernate支持MongoDB的
--- 共有 1 条评论 ---
(2年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
我们网站用的spring-data-mongodb
--- 共有 1 条评论 ---
嗯 晚些我看看这些,谢谢
(2年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
--- 共有 1 条评论 ---
谢谢,看来mongodb的框架东东还好少
(2年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
你这框架的意思是何?类似于Hibernate?
--- 共有 3 条评论 ---
: SSH == Struts+Spring+Hibernate,对NoSQL来说,仅仅发生在Hibernate ORM框架有所不同而已,Hibernate官方已经搞了一个NoSQL的框架,叫 Hibernate OGM。Spring和Struts对于你选择何种数据库没有任何影响。
(2年前)&nbsp&
(2年前)&nbsp&
就是类似主流数据库的SSH这样的东东
(2年前)&nbsp&
更多开发者职位上
有什么技术问题吗?
类似的话题}

我要回帖

更多关于 linux ssh是什么 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信