牛腩新闻发布系统之系统分析、后台设计

2024-08-26 01:48

本文主要是介绍牛腩新闻发布系统之系统分析、后台设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

牛腩新闻发布系统前17讲主要是针对系统分析及后台的设计和编码。主要包括以下几部分的工作:
1.系统设计说明书编写
首先应该明确自己要做的是什么,明确分析用户的需求,接下来就是要计划自己怎么去做这件事,最后还要考虑一下,如何才能更好的去完成这件事。文档编写主要包括以下几个方面:
(1)系统介绍(明确自己要做的是什么)
(2)系统功能图、数据库设计图
(3)数据库文档编写
这个主要是针对数据库的介绍,其中包含那几张表、表中包含哪些字段、字段的属性及说明等。
2.界面原型图设计(前台)
3.数据表操作代码编写
(1)用SQL语句建立数据库、表、字段
以前只是听说过可以在数据库里面写SQL语句进行建立数据库等的操作,看了牛腩老师的视频自己也学会了,真的很方便的,而且操作也非常的简单,以后就用这个办法建表啦。
(2)编写SQLHelper类
机房重构的时候就用到了SQLHelper类,真个重构下来这个数据库小助手确实给我们省了不少事哈。无非还是那些功能:数据库的连接与关闭、有参数的增删改和无参数的增删改方法、带参查询和不带参查询。将公用的东西放到一起,封装成一个类到时候用到哪个就直接调用一下就好啦。重构的时候虽然说是用到了这个类,但是是站在巨人的肩膀上,可以说更多是引用。看了牛腩视频之后,老师对SQLHelper类的编写是不断优化的,从繁琐到精简,我也是一步步的跟着操作,真正体会到了代码优化的过程。
(3)编写数据表操作类
牛腩新闻发布系统一共涉及到了三张表:新闻表、类别表、评论表。关系如下:


首先先把三者的关系理清了,明确各自需要实现的功能,接下来再说代码的事。举个最简单的例子:评论类DAL层代码设计
CommentDAO类包含的方法:
(1)根据新闻ID取出该新闻所有评论
(2)插入评论
(3)删除评论
这样将需要实现的方法先明确了,接下来是对数据库的一些操作了:查询、增加、删除。这个就是要调用SQLHelper类的相关增删改查的方法了。和七层的重构没有什么区别。

为了给DAL层减负,还用到了多个存储过程。既方便有减少了出错率。

期间如果我们想删除某一个新闻类别,因为设置了外键关联。其下面关联的还有相应的评论,关系到评论表,所以总是会提示出现错误,无法删除新闻类别。这个时候我们需要用到触发器。先看一段代码:

看了这个之后相信大家都明白触发器是做什么的了吧,哈哈,没错它可以实现级联删除功能:先删除某ID下的评论,再删除该ID的新闻,最后删除该类别、这样的话就大功告成了。

还需要注意的是使用该软件的人可能是丝毫没有软件编程基础的人,这样的话,还需要防止SQL的注入,如果使用者一不小心乱输了一串字符恰好执行了数据的某些操作,歪打正着,无意间破坏了软件。作为程序员,我们一定要对自己设计的软件考虑周全。之前只是听说过,也见到过别人对这放慢的总结,自己之前在设计软件的时候可能并没有进行破坏性试验,所以知道现在才真正认识它。举个例子:比方说,你想要搜索新闻,然后你不小心在输入框中输入了:
娱乐新闻c')delete category where id=4--
你在实现搜索新闻功能的时候,需要实现的是通过文本框中用户输入的信息,然后对应到数据库中,一旦写的不严谨,就有可能把文本框的这句话当成一个SQL语句执行了。


所以我们需要对自己的这段代码进行优化,避免SQL注入:不使用拼接的形式,用更为严谨的方式:使用带参数的SQL语句(在SQLHelper类中编写带参数的增删改方法)


4.编写BLL层代码
根据DAL层的方法编写BLL层代码,从而实现用户需求。很简单,就不多说了。

关于代码规范:
1、类头的注释
2、类中方法的注释

总结,至此为止算是基本上完成了牛腩新闻发布系统的系统分析、后台实现,接下来就该进行前台界面等的设计了。

这篇关于牛腩新闻发布系统之系统分析、后台设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1107203

相关文章

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

Linux系统中配置静态IP地址的详细步骤

《Linux系统中配置静态IP地址的详细步骤》本文详细介绍了在Linux系统中配置静态IP地址的五个步骤,包括打开终端、编辑网络配置文件、配置IP地址、保存并重启网络服务,这对于系统管理员和新手都极具... 目录步骤一:打开终端步骤二:编辑网络配置文件步骤三:配置静态IP地址步骤四:保存并关闭文件步骤五:重

Windows系统下如何查找JDK的安装路径

《Windows系统下如何查找JDK的安装路径》:本文主要介绍Windows系统下如何查找JDK的安装路径,文中介绍了三种方法,分别是通过命令行检查、使用verbose选项查找jre目录、以及查看... 目录一、确认是否安装了JDK二、查找路径三、另外一种方式如果很久之前安装了JDK,或者在别人的电脑上,想

Nginx实现前端灰度发布

《Nginx实现前端灰度发布》灰度发布是一种重要的策略,它允许我们在不影响所有用户的情况下,逐步推出新功能或更新,通过灰度发布,我们可以测试新版本的稳定性和性能,下面就来介绍一下前端灰度发布的使用,感... 目录前言一、基于权重的流量分配二、基于 Cookie 的分流三、基于请求头的分流四、基于请求参数的分

Linux系统之authconfig命令的使用解读

《Linux系统之authconfig命令的使用解读》authconfig是一个用于配置Linux系统身份验证和账户管理设置的命令行工具,主要用于RedHat系列的Linux发行版,它提供了一系列选项... 目录linux authconfig命令的使用基本语法常用选项示例总结Linux authconfi

Nginx配置系统服务&设置环境变量方式

《Nginx配置系统服务&设置环境变量方式》本文介绍了如何将Nginx配置为系统服务并设置环境变量,以便更方便地对Nginx进行操作,通过配置系统服务,可以使用系统命令来启动、停止或重新加载Nginx... 目录1.Nginx操作问题2.配置系统服android务3.设置环境变量总结1.Nginx操作问题

CSS3 最强二维布局系统之Grid 网格布局

《CSS3最强二维布局系统之Grid网格布局》CS3的Grid网格布局是目前最强的二维布局系统,可以同时对列和行进行处理,将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局,本文介... 深入学习 css3 目前最强大的布局系统 Grid 网格布局Grid 网格布局的基本认识Grid 网