您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 课程设计-基于mysql的新闻管理系统
《基于Mysql的新闻管理系统》第1页共15页1引言1.1课题背景在现代信息技术的基础上,随着网络的不断的发展,计算机性能不断提高,价格不断下降,很多人已经有了上网浏览新闻的习惯。网络新闻不但浏览方便,而且更新速度快,所以出现了很多新闻网站为网民提供服务。1.2课程设计目的很多人每天都在关注着各地发生的一些让他们关注的新闻,新闻管理系统就是为了实现这个目标而做的。记者可以在通过网页发表新闻,实现了新闻的即时共享,网民可以通过访问网页就可以看到找到他们关注的新闻,新闻的后台管理员可以审核记者发表的新闻,不合格的可以删除。通过新闻管理系统的课程设计,熟练掌MyEclipse,MySQL-Font等工具软件,系统地掌握需求分析、数据库设计、编码实现、测试等软件开发的流程,提高自身分析问题、解决问题的能力。1.3课程设计任务本课程设计任务是通过开发一个新闻管理系统,学习数据库系统的设计与开发,采用MyEclipse和MySQL-Font等软件为开发工具。通过对计算机硬件和软件解决方案的论证,对应用领域进行调查分析,参考各种资料和进行数据库系统开发实践。在指导老师的帮助下,已经基本上成功地实现了设计任务书的要求,使得设计的数据库系统能够实现一般数据库的管理。《基于Mysql的新闻管理系统》第2页共15页2系统结构分析2.1需求分析新闻管理系统应该可以通过后台管理员用户登录后对新闻进行审核、编辑、删除等操作,及时为用户提供及时的新闻。经过分析,确定了新闻系统的主要包括以下功能:(1).记者增加新闻(2).后台管理员审核、编辑新闻(3).后台管理员删除新闻(4).所有进入网站的人查看新闻2.2功能模块图根据上述的功能,可以设计出系统的总体功能模块,如图2.1所示。新闻管理系统记者管理新闻管理注册记者增加新闻新闻查看更改新闻删除新闻注册记者图2.1新闻管理系统功能模块示意图《基于Mysql的新闻管理系统》第3页共15页3数据库设计3.1概念结构设计根据需求分析抽象出信息结构,可得该系统的E-R图。(1).用户E-R图,如图3.1所示。图3.1用户E-R图根据分E-R图和需求分析,可得到总E-R图,如图2.10所示。图3.2总体E-R图3.2逻辑结构设计根据上述的概念结构设计出逻辑结构,将E-R图转换为关系模型。数据库news包含以下4个表:用户表user、用户类型表userType、新闻表news、新闻类型表newsType。(1)用户类型表usertype用户用户名密码用户类型用户新闻用户类型新闻类型属于拥有操作n11nn1《基于Mysql的新闻管理系统》第4页共15页表3-1表usertype的结构编号字段名称数据结构说明1utidint记录编号2utypeNameVarchar(30)用户类型信息名称(2)用户表User表3-2表User的结构编号字段名称数据结构说明1uidint记录编号2utidint用户类型编号,1-记者,2-后台管理员3unameVarchar(20)用户名4phoneVarchar(12)联系方式5ageInt年龄6SexVarchar(4)性别7workYearInt工龄8PwdVarchar(16)密码(3)新闻表news表3-3表news的结构编号字段名称数据结构说明1nidint记录编号2newsNameVarchar(100)新闻名3ntidint新闻类型4contentVarchar(500)新闻内容(4).新闻类型表newsType表3-4表newsType的结构编号字段名称数据结构说明1ntidint记录编号2ntypeNameVarchar(30)新闻类型名通过对上面表的分析,插入,删除,查找等操作,所有模式都符合3NF。本系统将用户划分为两种类型,即系统管理员和普通用户。系统管理员为Admin,他可以管理其他用户的信息,在其他方面所有用户的权限相同。前面是通过前台来实现系统安全性的,我们也可以对数据库进行身份验证,可以从服务器角度建一个登录名,使得不同的服务器角色拥有不同的权限,从而实现对数据库的不同权限的管理,以此来增强医院门诊收费系统的安全性。3.3数据库表的建立《基于Mysql的新闻管理系统》第5页共15页在设计数据库表结构之前,首先要创建一个数据库。本系统使用的数据库为news。可以在MySQL-Front的sql编辑器中输入sql,以下为sql语句:CREATEDATABASE`news`/*!40100DEFAULTCHARACTERSETutf8*/;(1).创建表usertypecreatetableusertype(utidintnotnullAUTO_INCREMENT,utypeNamenationalvarchar(20)notnull,primarykey(utid));(2).创建表usercreatetableuser(uidintnotnullAUTO_INCREMENT,unamevarchar(20)notnull,pwdvarchar(16)notnull,utidintnotnull,phonevarchar(13),ageint,sexvarchar(4),workyearint,primarykey(uid,uname));(3).创建表newsTypecreatetablenewsType(ntidintnotnullAUTO_INCREMENT,utypeNamenationalvarchar(20)notnull,primarykey(ntid));《基于Mysql的新闻管理系统》第6页共15页(4).创建表newscreatetablenews(nidintnotnullAUTO_INCREMENT,ntidintnotnull,newsNamevarchar(100)notnull,contentvarchar(1000)notnull,updateTimedatenotnull,primarykey(nid));《基于Mysql的新闻管理系统》第7页共15页4系统实现4.1数据库的连接在该系统中数据库的连接使用JDBC链接数据库。在类DBUtils中用JDBC链接数据库的代码如下:static{try{Class.forName(com.mysql.jdbc.Driver);}catch(ClassNotFoundExceptione){e.printStackTrace();}}publicstaticConnectiongetConn(){Connectionconn=null;Stringurl=jdbc:mysql://127.0.0.1:3306/news?user=root&password=admin&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&failOverReadOnly=false;try{conn=DriverManager.getConnection(url);}catch(SQLExceptione){e.printStackTrace();}returnconn;}4.2系统功能模块设置(1).实现增加新闻的代码publicbooleanaddNews(Newsnews){introw=0;Connectionconn=DBUtils.getConn();Stringsql=insertintonews(newsName,content,updateTime,ntid)《基于Mysql的新闻管理系统》第8页共15页values(?,?,?,?);PreparedStatementpstmt=DBUtils.getPreparedStatement(conn,sql);try{pstmt.setString(1,news.getNewsName());pstmt.setString(2,news.getContent());pstmt.setTimestamp(3,newTimestamp(news.getUpdateTime().getTime()));pstmt.setInt(4,news.getNtid());row=pstmt.executeUpdate();}catch(SQLExceptione){e.printStackTrace();}finally{DBUtils.close(conn,pstmt,null);}if(row0)returntrue;elsereturnfalse;}(2).实现删除新闻的代码publicbooleandelNewsById(intid){introw=0;Connectionconn=DBUtils.getConn();Stringsql=deletefromnewswherenid=?;PreparedStatementpstmt=DBUtils.getPreparedStatement(conn,sql);try{pstmt.setInt(1,id);row=pstmt.executeUpdate();}catch(SQLExceptione){e.printStackTrace();}finally{DBUtils.close(conn,pstmt,null);《基于Mysql的新闻管理系统》第9页共15页}return(row0?true:false);}(3).实现编辑新闻的代码publicbooleanmodifyNews(Newsnews){introw=0;Connectionconn=DBUtils.getConn();Stringsql=updatenewssetnewsName=?,content=?,postTime=?wherenid=?;PreparedStatementpstmt=DBUtils.getPreparedStatement(conn,sql);try{pstmt.setString(1,news.getNewsName());pstmt.setString(2,news.getContent());pstmt.setTimestamp(3,newTimestamp(news.getUpdateTime().getTime()));pstmt.setInt(4,news.getNid());row=pstmt.executeUpdate();}catch(SQLExceptione){e.printStackTrace();}finally{DBUtils.close(conn,pstmt,null);}return(row0?true:false);}(4).实现获得新闻列表的代码publicListNewsgetNewsList(){Connectionconn=DBUtils.getConn();Stringsql=null;ResultSetres=null;ListNewslist=newArrayListNews();《基于Mysql的新闻管理系统》第10页共15页sql=selectnid,ntid,newsName,updateTimefromnews;PreparedStatementpstmt=DBUtils.getPreparedStatement(conn,sql);res=DBUtils.getResultSet(pstmt,sql);try{while(res.next()){Newsnews=newNews();news.setNid(res.getInt(nid));news.setNewsName(res.getString(newsName));news.setNtid(res.getInt(ntid));news.setUpdateTime(res.getDate(updateTime));list.add(news);}}catch(SQLExceptione){e.p
本文标题:课程设计-基于mysql的新闻管理系统
链接地址:https://www.777doc.com/doc-7273006 .html