关于程序分层

关于程序分层

首先简单说一下,数据库连接池与DButils的方便之处,比如我们要获得数据库A中的B表中的一条数据:

  1. 普通方法:

    首先执行,注册驱动,提供URL,获取连接,创建statement对象,

    在这里分为查询语句,和增删改语句

    如果是查询语句:我们要获得结果集,然后根据B表中的字段类型对应,创建出不同的包装类来获得相应对象,并且一旦连接关闭,我们就无法使用结果集

    这时我们需要创建与表有映射关系的JavaBean类来保存结果,并且需要我们手动封装数据。

    而且在获得连接执行查询语句时,手写判断类型的语句,来获取数据。

    并且如果在实际当中,发生许多连接重复提交申请,获取连接,就会造成数据库连接的多次创建与关闭,这非常耗时。

  2. 使用数据库连接池和DButils工具类

    拿德鲁伊连接池举例,在使用连接池时,只需要提供相应配置文件,然后创建DataSource,通过DataSource就可以获取连接,简单省力,并且在底层中,由于重写了close方法,连接并不是真正的关闭了,而是重新放回了连接池中,我们还可以通过绑定线程的方式,来获取固定连接,实现数据库的事务处理

    在执行SQL语句时,并不需要创建statement对象,因为DButils底层封装了SQL的执行,这会使我们在开发中节约大量的时间,并且还有相应的BeanUtils工具类,该工具类可以帮助把数据赋给JavaBean类,这样就不用我们手动封装

接下来关于程序分层的问题:
首先是MVC的概念
MVC全称:Model模型,View视图、Controller控制器

MVC最早出现在JavaEE三层中的Web层,它可以有效的直到Web层的代码如何有效分离,单独工作

View视图:只负责数据和界面的显示,不接受任何与显示数据无关的代码,便于程序员和美工的分工合作——JSP/HTML

Controller控制器:只负责接收请求,调用业务层的代码处理请求,然后派发页面,是一个“调度者”的角色——Servlet,转到某个页面或者谁重定向到某个页面

Model模型:将与业务逻辑相关的数据封装为具体的JavaBean类,其中不掺杂任何与数据处理相关的代码——JavaBean/domain/pojo/entity

具体可以分为,DAO层,service层,web层,JavaBean层

DAO层,主要做创建SQL语句,与数据连接并返回结果的操作,不对数据做任何处理,本层可以写一个通过的BasicDao类,创建通用的增删改查方法,其他还可以每一张表都分出一个DAO类,用于操作表中具体数据。

service层,主要做数据分析处理操作,本层中有一个具体的DAO对象

web层,主要存放Servlet程序,通过调用service获取想要的数据返回给前端页面上,每一个Servlet程序就是一个服务

JavaBean层,与数据库某张表有映射关系的类,要提供set、get方法,因为DButils工具类底层是通过反射来创建对象的

其他的还可以有工具类,里面提供一些好用的工具,比如,JDBCutils,用于获取连接,关闭连接等操作,WebUtils工具类,用来封装JavaBean,或者操作其他数据,filter过滤器,用于过滤页面,Listener监听器等一些包

如果要获取一条数据,传到前端页面上,实际上的操作就是:

通过JDBCutils获取连接,在DAO层通过连接执行SQL语句,并且以JavaBean,或者存放JavaBean的集合等形式返回结果,接着service层得到结果,根据自己的业务,对结果处理,然后到servlet层,相应服务通过相应service来得到想要的数据,接着将结果传递给前端上

至于其他如utils包都是辅助这个过程更好执行的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值