java三层结构小节
三层架构总结
简述:
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三层结构小节相关推荐
- Java三层结构的概念_Java中的mvc和三层结构究竟是什么关系
原标题:Java中的mvc和三层结构究竟是什么关系 一件事,要知其然往往很简单,要知其所以然通常不是那么容易,就如最近重新巩固spring的过程中,就觉得还有许多问题其实并不是十分明了. 屈指一算,手 ...
- Java三层结构,附源码
1,三层架构分为:数据访问层(dao,持久层),业务逻辑层(service,业务层),表示层(view,表示层) 2,数据访问层:主要负责数据库的访问(增删改查). 3,业务逻辑层:主要负责业务处理和 ...
- java web简单三层结构
java web可以分为三层结构:表现层.业务层.持久化层 表现层: 1.主要由jsp页面实现,jsp页面主要负责页面的渲染工作,它从浏览器接收从客户端传来的动作传递给servlet,servlet接 ...
- java中的mvc三层结构究竟有什么关系
一件事,要知其然往往很简单,要知其所以然通常不是那么容易,就如最近重新巩固spring的过程中,就觉得还有许多问题其实并不是十分明了. 屈指一算,手头上做过的正式项目也有了四五六七个了,不管用的数据库 ...
- java中的mvc和三层结构究竟是什么关系
一件事,要知其然往往很简单,要知其所以然通常不是那么容易,就如最近重新巩固spring的过程中,就觉得还有许多问题其实并不是十分明了. 屈指一算,手头上做过的正式项目也有了四五六七个了,不管用的数据库 ...
- mvc与三层结构终极区别
又看到有人在问三层架构和MVC的关系,感觉这种问题有点教条化了.因为它们都在逻辑上将应用程序划为三块,凑了一个数字3,就有人非要把它们联系到一起了. 这两个东西我接触有几年了,有一点体会,表达一下: ...
- 浅谈“三层结构”原理与用意(转帖)
浅谈"三层结构"原理与用意 序 在刚刚步入"多层结构"Web应用程序开发的时候,我阅读过几篇关于"asp.net三层结构开发"的文章.但其多 ...
- 【Java】命令行下的Java包结构编译与执行
编写代码 com.hhh.test.PackageTest package com.hhh.test;public class PackageTest {public static void main ...
- 如何深入理解PhalApi框架三层结构Api+Domain+Model模式
1. Api+Domain+Model 其实这样的三层结构和java中的web+service+dao比较像,和我们平常所说的MVC开发模式也是非常想象.只是说web和api一个进行页面显示一个不进行 ...
最新文章
- 设备控制接口(ioctl 函数)
- 未来软件是什么样呢?数据库篇(转载)
- linux基础知识复习
- Java线程详解(2)-创建与启动
- 图论--边双连通V-DCC缩点
- 专访 Unity 高管:深耕游戏、VR/AR,致力为开发者提供极致体验
- 自动色彩均衡算法(ACE)原理及实现
- Future机制原理
- WPS 破解宏 安装VBA VBA for WPS
- 多元统计分析基于r课后答案_应用多元统计分析课后答案
- python根据题库答案自动答题_直播答题助手 自动检测出题、搜索答案
- win10中如何用鼠标快速切换窗口?
- Autoit+selenium+python实现文件上传功能
- 《Spring Boot极简教程》第1章 Spring Boot史前简述
- Excel2007无法卸载:安装程序包的语言不受系统支持。微软的卸载程序也不行。——只能手工删除
- Android:使用 Flutter 包创建 Xylophone 应用程序
- CH340和PL2303安装(带链接)
- HTML CSS 学生期末网页设计作业「动漫小站」
- 注册免费的外贸B2B平台有什么作用
- 回顾过往,布局未来:2022 年证券走势
热门文章
- pl2303hxa串口线驱动_PL2303 USB转串口驱动64位(非认证线缆可用)_下载_热门驱动_驱动精灵...
- 自定义审批流程表设计
- 洛谷P4572 [JSOI2013] 哈利波特与死亡圣器
- 203.为用户定义的数据类型绑定默认值案例
- java适合音频格式_我应该为java使用什么音频格式?
- mysql 1698_MySQL-1698 : Access denied for user 'root'@'localhost'解决方法
- BZOJ 2563 阿狸和桃子的游戏 题解(贪心)
- 跨越千年的RSA算法
- 地图上制作线路的动画_使用百度地图API制作线路轨迹播放
- decimal在java怎么用?