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

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

相关文章

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

修复已被利用的高危漏洞! macOS Sequoia 15.6.1发布

《修复已被利用的高危漏洞!macOSSequoia15.6.1发布》苹果公司于今日发布了macOSSequoia15.6.1更新,这是去年9月推出的macOSSequoia操作... MACOS Sequoia 15.6.1 正式发布!此次更新修复了一个已被黑客利用的严重安全漏洞,并解决了部分中文用户反馈的

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻