課程設(shè)計(jì)-基于mysql的新聞管理系統(tǒng)_第1頁(yè)
課程設(shè)計(jì)-基于mysql的新聞管理系統(tǒng)_第2頁(yè)
課程設(shè)計(jì)-基于mysql的新聞管理系統(tǒng)_第3頁(yè)
課程設(shè)計(jì)-基于mysql的新聞管理系統(tǒng)_第4頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1 引言1.1 課題背景在現(xiàn)代信息技術(shù)的基礎(chǔ)上,隨著網(wǎng)絡(luò)的不斷的發(fā)展,計(jì)算機(jī)性能不斷提高,價(jià)格不 斷下降,很多人已經(jīng)有了上網(wǎng)瀏覽新聞的習(xí)慣。網(wǎng)絡(luò)新聞不但瀏覽方便,而且更新速度 快,所以出現(xiàn)了很多新聞網(wǎng)站為網(wǎng)民提供服務(wù)。1.2 課程設(shè)計(jì)目的很多人每天都在關(guān)注著各地發(fā)生的一些讓他們關(guān)注的新聞,新聞管理系統(tǒng)就是為了 實(shí)現(xiàn)這個(gè)目標(biāo)而做的。記者可以在通過(guò)網(wǎng)頁(yè)發(fā)表新聞,實(shí)現(xiàn)了新聞的即時(shí)共享,網(wǎng)民可 以通過(guò)訪問(wèn)網(wǎng)頁(yè)就可以看到找到他們關(guān)注的新聞, 新聞的后臺(tái)管理員可以審核記者發(fā)表 的新聞,不合格的可以刪除。通過(guò)新聞管理系統(tǒng)的課程設(shè)計(jì),熟練掌MyEclipse , MySQL-Font 等工具軟件,系統(tǒng)地掌握需

2、求分析、數(shù)據(jù)庫(kù)設(shè)計(jì)、編碼實(shí)現(xiàn)、測(cè)試等軟件開(kāi)發(fā)的流程,提高自身分析問(wèn)題、解決問(wèn)題的能力。1.3 課程設(shè)計(jì)任務(wù)本課程設(shè)計(jì)任務(wù)是通過(guò)開(kāi)發(fā)一個(gè)新聞管理系統(tǒng),學(xué)習(xí)數(shù)據(jù)庫(kù)系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā),采用 MyEclipse 和 MySQL-Font 等軟件為開(kāi)發(fā)工具。通過(guò)對(duì)計(jì)算機(jī)硬件和軟件解決方案的論證,對(duì)應(yīng)用領(lǐng)域進(jìn)行調(diào)查分析,參考各種資料和進(jìn)行數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)實(shí)踐。在指導(dǎo)老師的幫助下,已經(jīng)基本上成功地實(shí)現(xiàn)了設(shè)計(jì)任務(wù)書的要求,使得設(shè)計(jì)的數(shù)據(jù)庫(kù)系統(tǒng)能夠?qū)崿F(xiàn)一般數(shù)據(jù)庫(kù)的管理。2 系統(tǒng)結(jié)構(gòu)分析2.1 需求分析新聞管理系統(tǒng)應(yīng)該可以通過(guò)后臺(tái)管理員用戶登錄后對(duì)新聞進(jìn)行審核、編輯、刪除等操作,及時(shí)為用戶提供及時(shí)的新聞。經(jīng)過(guò)分析,確

3、定了新聞系統(tǒng)的主要包括以下功能:(1) . 記者增加新聞(2) . 后臺(tái)管理員審核、編輯新聞(3) . 后臺(tái)管理員刪除新聞(4) . 所有進(jìn)入網(wǎng)站的人查看新聞2.2 功能模塊圖根據(jù)上述的功能,可以設(shè)計(jì)出系統(tǒng)的總體功能模塊,如圖2.1 所示圖 2.1 新聞管理系統(tǒng)功能模塊示意圖3 數(shù)據(jù)庫(kù)設(shè)計(jì)3.1 概念結(jié)構(gòu)設(shè)計(jì)根據(jù)需求分析抽象出信息結(jié)構(gòu),可得該系統(tǒng)的E-R 圖(1).用戶 E-R 圖,如圖 3.1 所示。圖 3.1 用戶 E-R 圖根據(jù)分 E-R 圖和需求分析,可得到總E-R 圖,如圖 2.10 所示用戶新聞圖 3.2 總體 E-R 圖3.2 邏輯結(jié)構(gòu)設(shè)計(jì)根據(jù)上述的概念結(jié)構(gòu)設(shè)計(jì)出邏輯結(jié)構(gòu),將E-

4、R圖轉(zhuǎn)換為關(guān)系模型。數(shù)據(jù)庫(kù)news包含以下4個(gè)表:用戶表user 、用戶類型表userType新聞表n ews 、新聞?lì)愋捅?newsTypa(1) 用戶類型表 usertype表 3-1 表 usertype 的結(jié)構(gòu)編號(hào)字段名稱數(shù)據(jù)結(jié)構(gòu)說(shuō)明1utidint: 記錄編號(hào)2utypeNameVarchar(30)用戶類型信息名稱用戶表 User表 3-2 表 User 的結(jié)構(gòu)編號(hào)字段名稱數(shù)據(jù)結(jié)構(gòu)說(shuō)明1uidintr 記錄編號(hào)2utidint用戶類型編號(hào), 1-記者, 2-后臺(tái)管 理員3un ameVarchar(20): 用戶名4pho neVarchar(12): 聯(lián)系方式5ageInt年齡6

5、SexVarchar(4): 性別7workYearInt: 工齡8PwdVarchar(16)密碼新聞表 news表 3-3 表 news 的結(jié)構(gòu)編號(hào)字段名稱數(shù)據(jù)結(jié)構(gòu)說(shuō)明1nidintr 記錄編號(hào)2n ewsNameVarchar(100)新聞名3ntidint: 新聞?lì)愋?contentVarchar(500)新聞內(nèi)容(4). 新聞?lì)愋捅?newsType表 3-4 表 newsType 的結(jié)構(gòu)編號(hào)字段名稱數(shù)據(jù)結(jié)構(gòu)說(shuō)明1ntidintr 記錄編號(hào)2n typeNameVarchar(30)新聞?lì)愋兔ㄟ^(guò)對(duì)上面表的分析,插入,刪除,查找等操作,所有模式都符合3NF 。本系統(tǒng)將用戶劃分為兩種類

6、型,即系統(tǒng)管理員和普通用戶。系統(tǒng)管理員為Admin ,他可以管理其他用戶的信息,在其他方面所有用戶的權(quán)限相同。前面是通過(guò)前臺(tái)來(lái)實(shí)現(xiàn)系統(tǒng)安全性的,我們也可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行身份驗(yàn)證,可以從服務(wù)器角度建一個(gè)登錄名,使得不同的服務(wù)器角色擁有不同的權(quán)限,從而實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的不同權(quán)限的管理,以此來(lái)增強(qiáng)醫(yī)院門診收費(fèi)系統(tǒng)的安全性。3.3 數(shù)據(jù)庫(kù)表的建立在設(shè)計(jì)數(shù)據(jù)庫(kù)表結(jié)構(gòu)之前,首先要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)庫(kù)。本系統(tǒng)使用的數(shù)據(jù)庫(kù)為news ??梢栽?MySQL-Front 的 sql 編輯器中輸入 sql , 以下為 sql 語(yǔ)句 :CREATE DATABASE ' news' /*!40100 DEFAUL

7、T CHARACTER SET utf8 */(1) . 創(chuàng)建表 usertype create table usertype(utid utypeNameint not null AUTO_INCREMENT,primary key (utid) );national varchar(20) not null,(2) . 創(chuàng)建表usercreate table user(uidunamepwdutid phoneagesex workyearint not null AUTO_INCREMENT,varchar(20) not null,varchar(16) not null,int no

8、t null,varchar(13),int,varchar(4),int,primary key (uid,uname) );(3). 創(chuàng)建表newsTypecreate table newsType(ntidint not null AUTO_INCREMENT,utypeNamenational varchar(20) not null,primary key (ntid);(4). 創(chuàng)建表newscreate table news(nidint not null AUTO_INCREMENT,ntid newsName contentint not null,updateTime pr

9、imaryvarchar(100) not null,key (nid)varchar(1000) not null, date not);null,4.1 數(shù)據(jù)庫(kù)的連接在該系統(tǒng)中數(shù)據(jù)庫(kù)的連接使用JDBC 鏈接數(shù)據(jù)庫(kù)。在類DBUtils 中用 JDBC 鏈接數(shù)據(jù)庫(kù)的4 系統(tǒng)實(shí)現(xiàn)代碼如下:static catch (ClassNotFoundException e) e.printStackTrace();public static Connection getConn() Connection conn = null;String url =rEncoding=UTF-8&autoRe

10、connect=true&failOverReadOnly=false"try conn = DriverManager.getConnection(url); catch (SQLException e) e.printStackTrace();return conn;4.2 系統(tǒng)功能模塊設(shè)置(1) . 實(shí)現(xiàn)增加新聞的代碼public boolean addNews(News news) int row = 0;Connection conn = DBUtils.getConn();String sql = "insert into news(newsName,c

11、ontent,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.

12、executeUpdate(); catch (SQLException e) e.printStackTrace(); finally DBUtils.close(conn, pstmt, null); if (row > 0) return true;elsereturn false;(2) . 實(shí)現(xiàn)刪除新聞的代碼public boolean delNewsById(int id) int row = 0;Connection conn = DBUtils.getConn();String sql = "delete from news where nid=?"P

13、reparedStatement 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). 實(shí)現(xiàn)編輯新聞的代碼public boolean modifyNews(News news) int row =

14、0;Connection conn = DBUtils.getConn();String sql = "update news set newsName = ?, content = ?, postTime = ? wherenid = ?"PreparedStatement pstmt = DBUtils.getPreparedStatement(conn, sql); try pstmt.setString(1, news.getNewsName();pstmt.setString(2, news.getContent();pstmt.setTimestamp(3, n

15、ew 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). 實(shí)現(xiàn)獲得新聞列表的代碼 public List<News> getNewsList() Connection conn = DBUt

16、ils.getConn();String sql = null;ResultSet res = null;List<News> list = new ArrayList<News>();sql = "select nid, ntid, newsName, updateTime from news"PreparedStatement pstmt = DBUtils.getPreparedStatement(conn, sql); res =DBUtils.getResultSet(pstmt, sql);try while (res.next() Ne

17、ws 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,

18、pstmt, res); return list;5 功能測(cè)試5.1 網(wǎng)站首頁(yè)在 tomcat 上部署該系統(tǒng)并啟動(dòng),然后訪問(wèn),得到界面如圖5.1 所示登陸發(fā)表靳閭國(guó)內(nèi)新聞Jfldf 2010-070國(guó)外新聞曲 2010-05-30娛樂(lè)新聞酒 2010 0E30休育新聞或皿隨 tn 2010-05)-06圖 5.1 首頁(yè)5.2 查看一條新聞點(diǎn)擊一條新聞的標(biāo)題,查看一條新聞的完整內(nèi)容,如圖5.2 所示新聞標(biāo)題 發(fā)表時(shí)間迫出2010-07-30 00:00:00.0新聞內(nèi)容sadfsadfsd 100% '圖 5.2 查看一條新聞的界面5.3 發(fā)表新聞?dòng)浾叩顷懞罂梢园l(fā)表新聞,訪問(wèn)界面如圖5.

19、3 所示圖 5.3 記者發(fā)表新聞的界面5.4 后臺(tái)管理員界面后臺(tái)管理員登陸后可對(duì)新聞進(jìn)行審核,刪除等操作界面如圖5.44國(guó)內(nèi)新聞標(biāo)題發(fā)毀時(shí) 1 詞慌件20J0-O7-30g 址睦國(guó)外新聞發(fā)養(yǎng)時(shí)間操作nsdf201C 05 30M ?抿樂(lè)新聞標(biāo)題發(fā)說(shuō)吋問(wèn)操作sadf201C-0S-30ffi. 贓體肖新聞V4>Inr? rn? t. I0U* ”圖 5.4 管理員操作新聞的界面6 系統(tǒng)技術(shù)實(shí)現(xiàn)6.1 MySQLMySQL 是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),開(kāi)發(fā)者為瑞典MySQL AB 公司。在2008 年1 月 16 號(hào)被 Sun 公司收購(gòu)。而 2009 年,SUN 又被 Oracle 收購(gòu)

20、 .對(duì)于 Mysql 的前途 , 沒(méi)有 任何人抱樂(lè)觀的態(tài)度 .目前 MySQL 被廣泛地應(yīng)用在 Internet 上的中小型網(wǎng)站中。由于其 體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL 作為網(wǎng)站數(shù)據(jù)庫(kù)。6.2 JDBCJDBC (Java Data Base Connectivityjava數(shù)據(jù)庫(kù)連接)是一種用于執(zhí)行SQL 語(yǔ)句的Java API,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪問(wèn),它由一組用Java語(yǔ)言編寫的類和接口組成。JDBC為工具/數(shù)據(jù)庫(kù)開(kāi)發(fā)人員提供了一個(gè)標(biāo)準(zhǔn)的API ,據(jù)此可以構(gòu)建更高級(jí)的工具和接口, 使數(shù)據(jù)庫(kù)開(kāi)發(fā)人員能夠用純Java API 編寫數(shù)據(jù)庫(kù)應(yīng)用程序, 同時(shí) ,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論