JAVA EE三层架构:表现层、业务层、数据持久层

JAVA EE三层架构:

Struts2.0+spring+hibernate三层软件架构是一个比较成熟的轻量级的软件架构,基于此开发的B/S模型的软件至少包含以下三个部分:表示层、业务逻辑层和数据访问层。由Struts2.0来完成的表示层主要提供浏览器模式用户的操作界面,由spring来完成的业务逻辑层主要对用户或系统要求的逻辑功能进行统一管理,hibernate数据持久层主要完成对象向关系型数据库的映射,然后把这三者紧密地整合起来。在软件开发中的应用。

表现层

表现层主要起展示作用。可采用当前比较成熟的Struts技术。其中主要包含:
a) 展示层(View)
形式:JSP + Struts Taglib
作用:按用户需求展示数据给用户
b) 控制层
形式:ActionServlet + Action
作用:接收用户的请求,并委派给不同的业务逻辑处理;采用Command Pattern,可保证请求和处理的松耦合。

业务层

形式:可采用Spring技术,Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。
作用:业务层主要是完成相应的业务逻辑处理。
实现:对上层提供接口,并包含接口的实现。

数据持久化层

形式:可采用Hibernate技术
作用:数据持久化层主要是完成相关数据的提取、写入、修改、删除等操作。
实现:对上层提交接口,并包含接口的实现。

各层次的关系

表现层的控制 —〉业务层 —〉数据持久化层。

因为内容比较少,下面增加一个sql语句的剖析
sql语句的解析

     if(getSession().createSQLQuery ("SELECT MAX(ps.version) FROM vrv_paw_antivirusSetting ps,vrv_paw_antivirussoftstatic pc " + " where ps.antivirusName=pc.antivirusName and  ps.antivirusName='"+name+"' and pc.installType<>2) .uniqueResult() == null){
     return version;
     }

首先我们对sql语句进行分析
先把命名别名的提出来 vrv_paw_antivirusSetting as ps , vrv_paw_antivirussoftstatic as pc, max()是sql自动的求最大值函数
进行拆分 select max(ps.version) from ps,pc where ps.antivirusName=pc.antivirusName 就是一个双表根据name连接查询 ps.antivirusName=’”+name+”’ 简单的一个赋值语句 ,name是方法传进来的参数 pc.installType<>2表示左边pc.installType不等于2 uniqueResult()是用在已知查询出来结果唯一就用在最后
下面用别名代替化解sql语句:
select max(ps.version) from ps,pc where ps.antivirusName=pc.antivirusName ps.antivirusName=’”+name+”’ and ps.antivirusName=’”+name+“‘and pc.installType<>2
是不是感觉以后遇到复杂的sql再也不会陌生了

你可能感兴趣的:(java三层架构)