【浅入浅出】后台代码完结篇

牛老师的新闻发布系统中前17集是后台部分的编写,除了上篇博客中设计的重构SQLHelper外还有其他的内容,分别是:数据库设计、编写类别表操作类、建立新闻类别实体类、编写新闻评论类、触发器、存储过程、编写BLL。当然这其中还包括设计阶段。

每一个部分都是必不可少的,这里的后台D层和B层是使用C#语言编写的,比较容易理解。上述的某某类都是D层。这个系统可以说是三层结构来完成的,至于U层则是使用HTML来完成的,这也是我们最最紧张和最最兴奋的新知识了。牛腩老师讲解的非常详细,每一个步骤都非常详细到位。在这里先不聊U层,接着聊D层和B层。

D层是牛腩老师根据第四集界面设计是根据需求提出来的(虽然他是第二遍做这个系统)。在我们经历过个人版机房重构系统代码的编写后,对于简单的三层架构已经比较清楚 ,后面的两层也是简单易懂的,但是这其中仍然有许多我们需要学习的地方。

1、触发器的使用:对于很多人来说这部分的内容是很模糊的,毕竟在个人重构机房中有人使用,有人未使用。使用触发器的好处就是节省了我们很多需要考虑的步骤,有了触发器的存在我们可以在对一个内容修改时同时完成其它多个动作,而且不必去思考它的执行,系统会自动根据我们编写的代码来完成,中途出现意外也会对事件进行回滚。用更专业一点的话呢就是实现了数据库中的相关表实现级联更改;通过级联引用完整性约束可以更有效地执行这些更改。

2、存储过程的使用:这个大家应该同样不陌生,在重构中很多人都用到了这个知识点,至于它的优缺点:

优点
①重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。
②提高性能。存储过程在创建的时候在进行了编译,将来使用的时候不再重新翻译。一般的SQL语句每执行一次就需要编译一次,所以使用存储过程提高了效率。
③减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。
④安全性。参数化的存储过程可以防止SQL注入式攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程。
简单讲:
①.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
②.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
③.存储过程可以重复使用,可减少数据库开发人员的工作量
④.安全性高,可设定只有某些用户才具有对指定存储过程的使用权
缺点
①:调试麻烦,但是用 PL/SQL Developer 调试很方便!弥补这个缺点。
②:移植问题,数据库端代码当然是与数据库相关的。但是如果是做工程型项目,基本不存在移植问题。
③:重新编译问题,因为后端代码是运行前编译的,如果带有引用关系的对象发生改变时,受影响的存储过程、包将需要重新编译(不过也可以设置成运行时刻自动编译)。
④: 如果在一个程序系统中大量的使用存储过程,到程序交付使用的时候随着用户需求的增加会导致数据结构的变化,接着就是系统的相关问题了,最后如果用户想维护该系统可以说是很难很难、而且代价是空前的,维护起来更麻烦。


PS:这两个知识点和上一篇的SQLHelper应该称的上是前17讲中比较重要的内容。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 25
    评论
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值