完整word版课程设计基于mysql的新闻管理系统word文档良心出品.docx
- 文档编号:29816126
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:15
- 大小:105.70KB
完整word版课程设计基于mysql的新闻管理系统word文档良心出品.docx
《完整word版课程设计基于mysql的新闻管理系统word文档良心出品.docx》由会员分享,可在线阅读,更多相关《完整word版课程设计基于mysql的新闻管理系统word文档良心出品.docx(15页珍藏版)》请在冰豆网上搜索。
完整word版课程设计基于mysql的新闻管理系统word文档良心出品
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所示。
图3.2总体E-R图
3.2逻辑结构设计
根据上述的概念结构设计出逻辑结构,将E-R图转换为关系模型。
数据库news包含以下4个表:
用户表user、用户类型表userType、新闻表news、新闻类型表newsType。
(1)用户类型表usertype
表3-1表usertype的结构
编号
字段名称
数据结构
说明
1
utid
int
记录编号
2
utypeName
Varchar(30)
用户类型信息名称
(2)用户表User
表3-2表User的结构
编号
字段名称
数据结构
说明
1
uid
int
记录编号
2
utid
int
用户类型编号,1-记者,2-后台管理员
3
uname
Varchar(20)
用户名
4
phone
Varchar(12)
联系方式
5
age
Int
年龄
6
Sex
Varchar(4)
性别
7
workYear
Int
工龄
8
Pwd
Varchar(16)
密码
(3)新闻表news
表3-3表news的结构
编号
字段名称
数据结构
说明
1
nid
int
记录编号
2
newsName
Varchar(100)
新闻名
3
ntid
int
新闻类型
4
content
Varchar(500)
新闻内容
(4).新闻类型表newsType
表3-4表newsType的结构
编号
字段名称
数据结构
说明
1
ntid
int
记录编号
2
ntypeName
Varchar(30)
新闻类型名
通过对上面表的分析,插入,删除,查找等操作,所有模式都符合3NF。
本系统将用户划分为两种类型,即系统管理员和普通用户。
系统管理员为Admin,他可以管理其他用户的信息,在其他方面所有用户的权限相同。
前面是通过前台来实现系统安全性的,我们也可以对数据库进行身份验证,可以从服务器角度建一个登录名,使得不同的服务器角色拥有不同的权限,从而实现对数据库的不同权限的管理,以此来增强医院门诊收费系统的安全性。
3.3数据库表的建立
在设计数据库表结构之前,首先要创建一个数据库。
本系统使用的数据库为news。
可以在MySQL-Front的sql编辑器中输入sql,以下为sql语句:
CREATEDATABASE`news`/*!
40100DEFAULTCHARACTERSETutf8*/;
(1).创建表usertype
createtableusertype
(
utidintnotnullAUTO_INCREMENT,
utypeNamenationalvarchar(20)notnull,
primarykey(utid)
);
(2).创建表user
createtableuser
(
uidintnotnullAUTO_INCREMENT,
unamevarchar(20)notnull,
pwdvarchar(16)notnull,
utidintnotnull,
phonevarchar(13),
ageint,
sexvarchar(4),
workyearint,
primarykey(uid,uname)
);
(3).创建表newsType
createtablenewsType
(
ntidintnotnullAUTO_INCREMENT,
utypeNamenationalvarchar(20)notnull,
primarykey(ntid)
);
(4).创建表news
createtablenews
(
nidintnotnullAUTO_INCREMENT,
ntidintnotnull,
newsNamevarchar(100)notnull,
contentvarchar(1000)notnull,
updateTimedatenotnull,
primarykey(nid)
);
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)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(row>0)
returntrue;
else
returnfalse;
}
(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);
}
return(row>0?
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(row>0?
true:
false);
}
(4).实现获得新闻列表的代码
publicList
Connectionconn=DBUtils.getConn();
Stringsql=null;
ResultSetres=null;
List
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.printStackTrace();
}finally{
DBUtils.close(conn,pstmt,res);
}
returnlist;
}
5功能测试
5.1网站首页
在tomcat上部署该系统并启动,然后访问http:
//127.0.0.1/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.1MySQL
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。
在2008年1月16号被Sun公司收购。
而2009年,SUN又被Oracle收购.对于Mysql的前途,没有任何人抱乐观的态度.目前MySQL被广泛地应用在Internet上的中小型网站中。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
6.2JDBC
JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序,同时,JDBC也是个商标名。
有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。
换言之,有了JDBCAPI,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBCAPI写一个程序就够了,它可向相应数据库发送SQL调用。
同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。
7结束语
经过这些天的努力,本次课程设计终于完成了。
通过这次课程设计,使我对数据库这门课程有了更深入的理解,数据库是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。
在本次课程设计中,我明白了理论与实际应用相结合的重要性,并提高了自己组织数据及编写程序的能力,培养了基本的、良好的程序设计技能。
这次课程设计同样提高了我的综合运用所学知识的能力。
并对MySQL有了更深入的了解。
由于我的经验和知识的不足,在程序中还存在很多缺陷。
经过这次课程设计,我的知识得到了很大提高,经验也更加丰富。
今后我会更多的学习编程技巧,不断的提高程
参考文献
[1]孙卫琴.精通Struts基于MVC的Java.Web设计与开发,2004
[2][美]CAYS.HORSTMANNGARYCORNELL著陈昊鹏王浩姚建平等译.JAVA核心技术,2007
[3]王成春,周文玲.MySQL数据库大进击,2008
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word 课程设计 基于 mysql 新闻 管理 系统 文档 良心 出品