三层架构总结

简述:

1、三层架构(3-tier architecture)

三层架构分为: 界面层、业务逻辑层、数据访问层,上层调用下层的方法,下层为上层提供服务。

2、工厂类

通过配置文件创建类的实例对象。

3、JDBC(java database connection)

由数据库厂商提供的java程序和数据库之间的连接。

详解:

1、 三层架构

目的:解耦

在项目中所有的操作都可以放在一个java文件中实现,但是这样的项目耦合度比较高,对项目进行后期维护所花费的时间比较多,一处的修改就有可能导致项目不能运行,项目的可读性也比较低。

思想:

将项目进行分层处理,将项目不同类型的操作进行划分。

层次划分:

1) 界面层(UI+Handler)

直接面向用户的是界面层,接收用户信息或者向用户展示信息。Handler对所接收的信息进行最基本的判断使之符合项目的基本要求,比如:使用者在进行用户信息注册的时候用户名不能为空,密码不能为空(如有规定至少有几位,则要进行判断)。展示用户信息时,界面层只需要调用下层方法获得数据,不需要关心数据的来源。

在界面层的逻辑很少,按需求判断即可,主要是面向用户的界面(UI),要对提示信息进行显示,不能向用户展示用户看不懂的提示信息。

2) 业务逻辑层(Service)

这里是项目的主要业务逻辑所处层次。在写本层的内容之前可以先定义本层的接口在实现类中重写(override)方法。在这里还要提到另一个层次:事务层,事务可以理解为对数据库进行的操作(在数据完成录入后进行提交,发现异常之后对数据库进行回滚)事务层主要负责事务的提交和回滚,由事务层去调用业务逻辑操作。

业务逻辑是程序所有者制定的(提供服务的公司)比如:提供服务的公司要求用户在注册用户名的时候,用户名不可以重复,等一系列要求

3) 数据访问层(Dao)

本层主要实现对数据库的原子操作,供业务逻辑层调用。在方法时最好先写接口,明确思路。

小结:在写三层架构时在Handler中先写方法 然后去Dao层中写接口并实现,最后在业务逻辑层中调用Dao层方法,实现Handler中的方法,这样写思路比较清晰(个人看法,不排除有更好的方法)

2、 工厂类

工厂类负责使用IO流读取配置文件,并且根据配置文件中的类名进行反射创建单例对象(即在项目运行时不管何处调用都会是同一个实例),在项目运行时实例已经被创建。

3、 JDBC

JDBC是java项目与数据库建立联系的途径,由数据库厂家实现以第三方jar包的形式使用。

JDBC一般在Dao层中使用,过程分为以下6步:1、注册驱动2、获得数据库连接3、获取状态集4、执行sql语句5、处理结果集6、关闭连接。

java三层结构小节相关推荐

  1. Java三层结构的概念_Java中的mvc和三层结构究竟是什么关系

    原标题:Java中的mvc和三层结构究竟是什么关系 一件事,要知其然往往很简单,要知其所以然通常不是那么容易,就如最近重新巩固spring的过程中,就觉得还有许多问题其实并不是十分明了. 屈指一算,手 ...

  2. Java三层结构,附源码

    1,三层架构分为:数据访问层(dao,持久层),业务逻辑层(service,业务层),表示层(view,表示层) 2,数据访问层:主要负责数据库的访问(增删改查). 3,业务逻辑层:主要负责业务处理和 ...

  3. java web简单三层结构

    java web可以分为三层结构:表现层.业务层.持久化层 表现层: 1.主要由jsp页面实现,jsp页面主要负责页面的渲染工作,它从浏览器接收从客户端传来的动作传递给servlet,servlet接 ...

  4. java中的mvc三层结构究竟有什么关系

    一件事,要知其然往往很简单,要知其所以然通常不是那么容易,就如最近重新巩固spring的过程中,就觉得还有许多问题其实并不是十分明了. 屈指一算,手头上做过的正式项目也有了四五六七个了,不管用的数据库 ...

  5. java中的mvc和三层结构究竟是什么关系

    一件事,要知其然往往很简单,要知其所以然通常不是那么容易,就如最近重新巩固spring的过程中,就觉得还有许多问题其实并不是十分明了. 屈指一算,手头上做过的正式项目也有了四五六七个了,不管用的数据库 ...

  6. mvc与三层结构终极区别

    又看到有人在问三层架构和MVC的关系,感觉这种问题有点教条化了.因为它们都在逻辑上将应用程序划为三块,凑了一个数字3,就有人非要把它们联系到一起了. 这两个东西我接触有几年了,有一点体会,表达一下: ...

  7. 浅谈“三层结构”原理与用意(转帖)

    浅谈"三层结构"原理与用意 序 在刚刚步入"多层结构"Web应用程序开发的时候,我阅读过几篇关于"asp.net三层结构开发"的文章.但其多 ...

  8. 【Java】命令行下的Java包结构编译与执行

    编写代码 com.hhh.test.PackageTest package com.hhh.test;public class PackageTest {public static void main ...

  9. 如何深入理解PhalApi框架三层结构Api+Domain+Model模式

    1. Api+Domain+Model 其实这样的三层结构和java中的web+service+dao比较像,和我们平常所说的MVC开发模式也是非常想象.只是说web和api一个进行页面显示一个不进行 ...

最新文章

  1. 设备控制接口(ioctl 函数)
  2. 未来软件是什么样呢?数据库篇(转载)
  3. linux基础知识复习
  4. Java线程详解(2)-创建与启动
  5. 图论--边双连通V-DCC缩点
  6. 专访 Unity 高管:深耕游戏、VR/AR,致力为开发者提供极致体验
  7. 自动色彩均衡算法(ACE)原理及实现
  8. Future机制原理
  9. WPS 破解宏 安装VBA VBA for WPS
  10. 多元统计分析基于r课后答案_应用多元统计分析课后答案
  11. python根据题库答案自动答题_直播答题助手 自动检测出题、搜索答案
  12. win10中如何用鼠标快速切换窗口?
  13. Autoit+selenium+python实现文件上传功能
  14. 《Spring Boot极简教程》第1章 Spring Boot史前简述
  15. Excel2007无法卸载:安装程序包的语言不受系统支持。微软的卸载程序也不行。——只能手工删除
  16. Android:使用 Flutter 包创建 Xylophone 应用程序
  17. CH340和PL2303安装(带链接)
  18. HTML CSS 学生期末网页设计作业「动漫小站」
  19. 注册免费的外贸B2B平台有什么作用
  20. 回顾过往,布局未来:2022 年证券走势

热门文章

  1. pl2303hxa串口线驱动_PL2303 USB转串口驱动64位(非认证线缆可用)_下载_热门驱动_驱动精灵...
  2. 自定义审批流程表设计
  3. 洛谷P4572 [JSOI2013] 哈利波特与死亡圣器
  4. 203.为用户定义的数据类型绑定默认值案例
  5. java适合音频格式_我应该为java使用什么音频格式?
  6. mysql 1698_MySQL-1698 : Access denied for user 'root'@'localhost'解决方法
  7. BZOJ 2563 阿狸和桃子的游戏 题解(贪心)
  8. 跨越千年的RSA算法
  9. 地图上制作线路的动画_使用百度地图API制作线路轨迹播放
  10. decimal在java怎么用?