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

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

相关文章

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI

Windows 系统下 Nginx 的配置步骤详解

《Windows系统下Nginx的配置步骤详解》Nginx是一款功能强大的软件,在互联网领域有广泛应用,简单来说,它就像一个聪明的交通指挥员,能让网站运行得更高效、更稳定,:本文主要介绍W... 目录一、为什么要用 Nginx二、Windows 系统下 Nginx 的配置步骤1. 下载 Nginx2. 解压

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

windows系统上如何进行maven安装和配置方式

《windows系统上如何进行maven安装和配置方式》:本文主要介绍windows系统上如何进行maven安装和配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. Maven 简介2. maven的下载与安装2.1 下载 Maven2.2 Maven安装2.

使用Python实现Windows系统垃圾清理

《使用Python实现Windows系统垃圾清理》Windows自带的磁盘清理工具功能有限,无法深度清理各类垃圾文件,所以本文为大家介绍了如何使用Python+PyQt5开发一个Windows系统垃圾... 目录一、开发背景与工具概述1.1 为什么需要专业清理工具1.2 工具设计理念二、工具核心功能解析2.

Linux系统之stress-ng测压工具的使用

《Linux系统之stress-ng测压工具的使用》:本文主要介绍Linux系统之stress-ng测压工具的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、理论1.stress工具简介与安装2.语法及参数3.具体安装二、实验1.运行8 cpu, 4 fo