课程设计-基于mysql的新闻管理系统.doc_第1页
课程设计-基于mysql的新闻管理系统.doc_第2页
课程设计-基于mysql的新闻管理系统.doc_第3页
课程设计-基于mysql的新闻管理系统.doc_第4页
课程设计-基于mysql的新闻管理系统.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Mysql的新闻管理系统 第页 共15页 1 引言1.1课题背景在现代信息技术的基础上,随着网络的不断的发展,计算机性能不断提高,价格不断下降,很多人已经有了上网浏览新闻的习惯。网络新闻不但浏览方便,而且更新速度快,所以出现了很多新闻网站为网民提供服务。1.2课程设计目的很多人每天都在关注着各地发生的一些让他们关注的新闻,新闻管理系统就是为了实现这个目标而做的。记者可以在通过网页发表新闻,实现了新闻的即时共享,网民可以通过访问网页就可以看到找到他们关注的新闻,新闻的后台管理员可以审核记者发表的新闻,不合格的可以删除。通过新闻管理系统的课程设计,熟练掌MyEclipse,MySQL-Font等工具软件,系统地掌握需求分析、数据库设计、编码实现、测试等软件开发的流程,提高自身分析问题、解决问题的能力。1.3课程设计任务本课程设计任务是通过开发一个新闻管理系统,学习数据库系统的设计与开发,采用MyEclipse和MySQL-Font等软件为开发工具。通过对计算机硬件和软件解决方案的论证,对应用领域进行调查分析,参考各种资料和进行数据库系统开发实践。在指导老师的帮助下,已经基本上成功地实现了设计任务书的要求,使得设计的数据库系统能够实现一般数据库的管理。2系统结构分析2.1 需求分析新闻管理系统应该可以通过后台管理员用户登录后对新闻进行审核、编辑、删除等操作,及时为用户提供及时的新闻。经过分析,确定了新闻系统的主要包括以下功能:(1) . 记者增加新闻(2) . 后台管理员审核、编辑新闻(3) . 后台管理员删除新闻(4) . 所有进入网站的人查看新闻2.2 功能模块图根据上述的功能,可以设计出系统的总体功能模块,如图2.1所示。图2.1 新闻管理系统功能模块示意图3数据库设计3.1 概念结构设计根据需求分析抽象出信息结构,可得该系统的E-R图。(1). 用户E-R图,如图3.1所示。用户用户名密码用户类型图3.1 用户E-R图根据分E-R图和需求分析,可得到总E-R图,如图2.10所示。用户类型 属于用户 操作新闻类型 拥有n11n1n新闻图 3.2 总体E-R图3.2逻辑结构设计根据上述的概念结构设计出逻辑结构,将E-R图转换为关系模型。数据库news包含以下4个表:用户表user、用户类型表userType、新闻表news、新闻类型表newsType。(1) 用户类型表usertype表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数据库表的建立在设计数据库表结构之前,首先要创建一个数据库。本系统使用的数据库为news。可以在MySQL-Front的sql编辑器中输入sql,以下为sql语句:CREATE DATABASE news /*!40100 DEFAULT CHARACTER SET utf8 */;(1). 创建表usertypecreate table usertype( utid int not null AUTO_INCREMENT, utypeName national varchar(20) not null, primary key (utid);(2). 创建表usercreate table user( uid int not null AUTO_INCREMENT, uname varchar(20) not null, pwd varchar(16) not null, utid int not null, phone varchar(13), age int, sex varchar(4), workyear int, primary key (uid, uname);(3). 创建表newsTypecreate table newsType( ntid int not null AUTO_INCREMENT, utypeName national varchar(20) not null, primary key (ntid);(4). 创建表 newscreate table news( nid int not null AUTO_INCREMENT, ntid int not null, newsName varchar(100) not null, content varchar(1000) not null, updateTime date not null, primary key (nid);4系统实现4.1 数据库的连接在该系统中数据库的连接使用JDBC链接数据库。在类DBUtils中用JDBC链接数据库的代码如下:static try Class.forName(com.mysql.jdbc.Driver); catch (ClassNotFoundException e) e.printStackTrace();public static Connection getConn() Connection conn = null;String url = jdbc:mysql:/:3306/news?user=root&password=admin&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&failOverReadOnly=false;try conn = DriverManager.getConnection(url); catch (SQLException e) e.printStackTrace();return conn;4.2 系统功能模块设置(1). 实现增加新闻的代码public boolean addNews(News news) int row = 0;Connection conn = DBUtils.getConn();String sql = insert into news(newsName,content,updateTime,ntid) values(?,?,?,?);PreparedStatement pstmt = DBUtils.getPreparedStatement(conn, sql);try pstmt.setString(1, news.getNewsName();pstmt.setString(2, news.getContent();pstmt.setTimestamp(3, new Timestamp(news.getUpdateTime().getTime();pstmt.setInt(4, news.getNtid();row = pstmt.executeUpdate(); catch (SQLException e) e.printStackTrace(); finally DBUtils.close(conn, pstmt, null);if (row 0)return true;elsereturn false;(2). 实现删除新闻的代码public boolean delNewsById(int id) int row = 0;Connection conn = DBUtils.getConn();String sql = delete from news where nid=?;PreparedStatement pstmt = DBUtils.getPreparedStatement(conn, sql);try pstmt.setInt(1, id);row = pstmt.executeUpdate(); catch (SQLException e) e.printStackTrace(); finally DBUtils.close(conn, pstmt, null);return (row 0 ? true : false);(3) . 实现编辑新闻的代码public boolean modifyNews(News news) int row = 0;Connection conn = DBUtils.getConn();String sql = update news set newsName = ?, content = ?, postTime = ? where nid = ?;PreparedStatement pstmt = DBUtils.getPreparedStatement(conn, sql);try pstmt.setString(1, news.getNewsName();pstmt.setString(2, news.getContent();pstmt.setTimestamp(3, new Timestamp(news.getUpdateTime().getTime();pstmt.setInt(4, news.getNid();row = pstmt.executeUpdate(); catch (SQLException e) e.printStackTrace(); finally DBUtils.close(conn, pstmt, null);return (row 0 ? true : false);(4). 实现获得新闻列表的代码public List getNewsList() Connection conn = DBUtils.getConn();String sql = null;ResultSet res = null;List list = new ArrayList();sql = select nid, ntid, newsName, updateTime from news;PreparedStatement pstmt = DBUtils.getPreparedStatement(conn, sql);res = DBUtils.getResultSet(pstmt, sql);try while (res.next() News news = new News();news.setNid(res.getInt(nid);news.setNewsName(res.getString(newsName);news.setNtid(res.getInt(ntid);news.setUpdateTime(res.getDate(updateTime);list.add(news); catch (SQLException e) e.printStackTrace(); finally DBUtils.close(conn, pstmt, res);return list;5功能测试5.1网站首页在tomcat上部署该系统并启动,然后访问/news-mysql/index.do,得到界面如图5.1所示。图 5.1 首页5.2查看一条新闻点击一条新闻的标题,查看一条新闻的完整内容,如图5.2所示。图5.2 查看一条新闻的界面5.3发表新闻记者登陆后可以发表新闻,访问界面如图5.3所示。图5.3 记者发表新闻的界面5.4后台管理员界面后台管理员登陆后可对新闻进行审核,删除等操作界面如图5.4图5.4 管理员操作新闻的界面6系统技术实现6.1 MySQLMySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购.对于Mysql的前途,没有任何人抱乐观的态度.目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。6.2 JDBCJDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,同时,JDBC也是个商标名。 有了JDBC,向各种

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论