web開發(fā)課程設計-新聞發(fā)布系統(tǒng)_第1頁
已閱讀1頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  《WEB數據庫系統(tǒng)開發(fā)》</p><p><b>  ——新聞發(fā)布系統(tǒng)</b></p><p>  班 級: 計科092班 </p><p>  姓 名: </p><p>  學 號: </p>

2、<p>  指導教師: </p><p>  時 間: 2012-6-1 </p><p><b>  需求分析</b></p><p><b>  項目概述</b></p><p>  當今社會是一個信息化的社會,新聞作為信息的

3、一部分,有著信息量大、類別繁多、形式多樣等特點。新聞發(fā)布系統(tǒng)由此提出,簡單地說,新聞發(fā)布系統(tǒng)就是充當一個網絡新聞媒介的功能,主要對新聞的管理功能。隨著網絡的快速發(fā)展和普及,越來越多的用戶習慣上網瀏覽新聞。本系統(tǒng)的主要目的就是為用戶提供一個方便、及時的網上新聞發(fā)布、瀏覽平臺。利用本系統(tǒng),用戶可以直接在網上發(fā)布新聞信息并根據自己的需要對新聞進行檢索。</p><p><b>  需求分析</b>

4、</p><p>  1.2.1 功能需求描述</p><p>  新聞發(fā)布系統(tǒng)的主要目的是為用戶提供一個方便的、可快速瀏覽當前最新新聞的界面,并且也可以隨時發(fā)布最新的訊息以達到信息共享的目的。因此要為用戶提供方便易用的使用界面,同時也為具有更高權限的管理用戶提供添加、刪除新聞的系統(tǒng)維護功能。</p><p>  1.2.2 基本功能</p><

5、;p>  1 查看新聞功能:任何用戶均可以使用查看新聞功能。首頁顯示不同欄目的最新幾條新聞,用戶通過在系統(tǒng)導航欄上單擊“新聞中心”超鏈接,可以進入查看所有新聞的頁面,查看新聞,并且使用分頁顯示的效果,每頁顯示20條新聞,用戶可通過單擊下方的上下頁及首尾頁按鈕來跳轉到任意一頁瀏覽。并且顯示的所有新聞按發(fā)布的時間降序排列,以保證最新發(fā)布的新聞位于最前面。用戶通過單擊每條新聞的標題可以查看到新聞的詳細內容。</p><

6、;p>  2新聞搜索功能:任何用廣均可以使用新聞搜索功能。通過在“查詢類別”下拉列表框中選擇按新聞的標題、內容、作者和發(fā)布日期等不同的查詢方式來搜索符合條件的新聞。這里提供的是模糊搜索功能,即只要在查詢字段中包含用戶輸入的關鍵字內容就認為是符合查詢條件的記錄。查詢結果同樣以分頁的方式顯示。</p><p>  3 下載中心:任何用戶均可以使用下載功能。用戶通過在系統(tǒng)導航欄上單擊“下載中心”超鏈接可以進入下載

7、頁面。該頁面顯示所有可供瀏覽者下載的文件,點擊文件名即可下載相應的文件</p><p>  4留言功能:為了了解網站訪問者對站點的意見,本系統(tǒng)提供留言功能,所有用戶都可以通過導航欄上的“我要留言”鏈接進入留言板系統(tǒng)進行留言,無需注冊,只需填寫留言內容、主題、用戶名即可進行留言。 </p><p>  5后臺管理功能:當管理員登錄后臺管理后,可以進行新聞管理操作,包括發(fā)布新聞,對現有新聞的修

8、改和刪除;對文件的管理操作,包括文件上傳、下載、刪除等;用戶管理操作,對管理員用戶的增加、刪除及修改個人信息等;圖片管理操作,包括對圖片的上傳、刪除等;留言管理操作,包括對留言的回復、審核、刪除等操作。管理員可通過單擊“安全退出”按鈕來安全退出。</p><p><b>  概要設計</b></p><p>  在前面對用戶需求的分析和研究的過程中,對于本系統(tǒng)中幾個主

9、要的功能模塊大致有了一個抽象的認識。下面將通過概要設計,給出新聞發(fā)布系統(tǒng)的模塊結構、流程描述和用戶界面布局。</p><p>  2.1 開發(fā)與設計的總體思想</p><p>  新聞發(fā)布系統(tǒng)面向各個層次的網絡用戶,為了使它適合更多的用戶使用,系統(tǒng)的界面設計應該盡量做到簡潔、友好、方便、易用,用戶不需要專門的學習便可熟練操作。</p><p>  首頁主要分為七個

10、板塊:圖片新聞、熱點新聞、最新公告、圖片掠影、天氣預報、下載中心、友情鏈接。首頁頭部logo有自動切換功能,管理員進入后臺后,左邊為導航條,分別有:用戶管理、新聞管理、文件管理、圖片管理、留言管理,右邊為相應操作界面。</p><p>  本系統(tǒng)采用B/S模式,服務器端使用JSP進行動態(tài)網頁的開發(fā)。并使用struts2的MVC模式,使用第三方文本編輯插件fckeditor。</p><p>

11、;  2.2 系統(tǒng)模塊結構圖</p><p>  依據需求分析結果,新聞發(fā)布系統(tǒng)可以分為六個模塊:數據庫訪問模塊、新聞查看模塊、新聞管理模塊、上傳管理模塊、留言管理模塊和用戶管理模塊,如圖2—1所示。</p><p>  2-1系統(tǒng)模塊結構圖</p><p><b>  2.3 模塊設計</b></p><p>  

12、1、數據庫訪問模塊:利用JavaBean封裝對數據庫的操作,主要包括連接數據庫、添加、修改、刪除、查詢數據表、關閉連接等功能。當JSP頁面中需要訪問數據庫時直接調用這個JavaBean即可。數據庫訪問模塊功能樹如圖2—2所示。</p><p>  2-2數據庫訪問模塊</p><p>  2、新聞查看模塊:新聞查看模塊提供分頁顯示全部新聞的功能,用戶通過單擊每條新聞的標題可以查看到本條新聞

13、的詳細內容。還可以通過輸入查詢類別和查詢關鍵字來選擇符合條件的新聞瀏覽。新聞查看模塊功能樹如圖2—3所示。</p><p><b>  2-3新聞查看模塊</b></p><p>  3、新聞管理模塊:新聞管理模塊包括修改新聞和刪除新聞的功能。在進入管理模塊前,需要以合法的管理員身份登錄。新聞管理模塊功能樹如圖2—4所示。</p><p>&l

14、t;b>  2-4新聞管理模塊</b></p><p>  4、上傳管理模塊:上傳管理模塊包括文件上傳、下載、刪除功能,需以管理員身份進入系統(tǒng)才能操作。</p><p>  留言管理模塊:留言管理模塊包括留言查看、審核、回復、刪除功能需</p><p>  以管理員身份進入系統(tǒng)才能操作。</p><p>  6、用戶管理模塊

15、:用戶管理模塊包括對系統(tǒng)管理員得添加、刪除及個人信息修改功能,需提供管理員權限才能進行操作。</p><p><b>  2.4 功能圖</b></p><p>  根據以上分析,可得系統(tǒng)功能圖如下所示:</p><p><b>  2.5 數據庫設計</b></p><p>  本系統(tǒng)主要涉及四

16、張表:管理員表(admin)、新聞表(news)、文件表(upload)、留言表(messages)。采用MySql數據庫。</p><p>  新聞:主要屬性有Id、類別、關鍵字、發(fā)布人、文章來源、新聞內容、瀏覽次數、新聞標題以及發(fā)布時間。</p><p>  管理員表:主要屬性有Id、姓名、密碼。</p><p>  上傳文件表:主要屬性有Id、文件存放路徑、文

17、件名稱、上傳時間。</p><p>  留言表:主要屬性有Id、主題、內容、回復內容、留言時間、留言人、心情、頭像、父級留言Id、留言人Email</p><p>  存儲新聞信息的news表。表結構如表2-1所示。</p><p>  表2-1 數據表news的結構</p><p>  admin數據表存儲管理員的信息,表的結構如表2-2所

18、示。</p><p>  表2-2 數據表admin的結構</p><p>  存儲上傳文件的信息upload表,表結構如2-3所示。</p><p>  表2-3 數據表upload的結構</p><p><b>  存儲留言信息的表</b></p><p><b>  表2-4 留言

19、表:</b></p><p><b>  詳細設計</b></p><p><b>  3.1 數據庫訪問</b></p><p><b>  功能:連接數據庫</b></p><p>  實現:使用JDBC驅動,寫一個工具類,提供加載驅動、建立連接、釋放資源的靜態(tài)

20、方法,要用時直接通過類名.方法名調用。</p><p>  package com.king.utils;</p><p>  import java.sql.Connection;</p><p>  import java.sql.DriverManager;</p><p>  import java.sql.ResultSet;<

21、;/p><p>  import java.sql.SQLException;</p><p>  import java.sql.Statement;</p><p>  public final class DBConnector {</p><p>  private static String url=”jdbc:mysql://loca

22、lhost:3306/newssys”;</p><p>  private static String user = "root";</p><p>  private static String password = "root";</p><p><b>  static{</b></p>

23、;<p><b>  try {</b></p><p>  Class.forName("com.mysql.jdbc.Driver");</p><p>  } catch (ClassNotFoundException e) {</p><p>  e.printStackTrace();</p&g

24、t;<p><b>  }</b></p><p><b>  }</b></p><p>  public static Connection getConnection() throws SQLException{</p><p>  return DriverManager.getConnection(

25、url,user,password);</p><p><b>  }</b></p><p>  public static void free(ResultSet rs,Statement st,Connection con){</p><p><b>  try {</b></p><p> 

26、 if(rs!=null)</p><p>  rs.close();</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p>  } finally {</p><p><b>  try {</b>

27、</p><p>  if(st!=null)</p><p>  st.close();</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p>  } finally{</p><p><b

28、>  try {</b></p><p>  if(con!=null)</p><p>  con.close();</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }<

29、;/b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  } </b></p><p><b>  }</b></p><p><b>  3.2 新聞瀏覽

30、</b></p><p>  功能:通過點擊新聞查看新聞的詳細內容</p><p>  實現:點擊新聞后根據新聞ID查詢出新聞詳細內容,封裝至新聞的JavaBean中,傳至JSP頁面,取出數據顯示</p><p>  public News getNewsDetail(String news_id){</p><p>  News

31、 news = new News();</p><p><b>  try {</b></p><p>  con = DBConnector.getConnection();</p><p>  ps = con.prepareStatement("select * from news where news_id=?");

32、</p><p>  ps.setString(1, news_id);</p><p>  rs = ps.executeQuery();</p><p>  while(rs.next()){</p><p>  news.setNews_id(rs.getInt(1));</p><p>  news.setNe

33、ws_type(rs.getString(2));</p><p>  news.setNews_keys(rs.getString(3));</p><p>  news.setNews_author(rs.getString(4));</p><p>  news.setNews_origin(rs.getString(5));</p><p

34、>  news.setNews_content(rs.getString(6));</p><p>  news.setNews_title(rs.getString(7));</p><p>  news.setNews_read(rs.getShort(8));</p><p>  news.setNews_time(rs.getString(9));&l

35、t;/p><p><b>  }</b></p><p>  ps = con.prepareStatement("update news set news_read=? where news_id=?");</p><p>  ps.setInt(1, news.getNews_read()+1);//將閱讀次數加1</

36、p><p>  ps.setString(2, news_id);</p><p>  ps.executeUpdate();</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }finally{&l

37、t;/b></p><p>  DBConnector.free(rs, ps, con);</p><p><b>  }</b></p><p>  return news;</p><p><b>  }</b></p><p><b>  3.3 新聞

38、管理</b></p><p>  3.3.1 發(fā)布新聞:</p><p>  功能:管理員在后臺發(fā)布新聞。</p><p>  實現:將新聞的信息存入數據庫,添加成功則返回true,否則返回false</p><p>  public boolean addArticle(String news_type, String news

39、_title,</p><p>  String news_keys, String news_author, String news_content,</p><p>  String news_origin, String news_time, int news_read){</p><p>  boolean b = false;</p><

40、;p>  String sql = "insert into news values (null,?,?,?,?,?,?,?,?)";</p><p><b>  try {</b></p><p>  con = DBConnector.getConnection();</p><p>  ps = con.prep

41、areStatement(sql);</p><p>  ps.setString(1, news_type);</p><p>  ps.setString(2, news_keys);</p><p>  ps.setString(3, news_author);</p><p>  ps.setString(4, news_origin

42、);</p><p>  ps.setString(5, news_content);</p><p>  ps.setString(6, news_title);</p><p>  ps.setInt(7, news_read);</p><p>  ps.setString(8, news_time);</p><p

43、>  int result = ps.executeUpdate();</p><p>  if (result != 0) {</p><p><b>  b = true;</b></p><p><b>  }</b></p><p>  } catch (SQLException e)

44、 {</p><p>  e.printStackTrace();</p><p><b>  }finally{</b></p><p>  DBConnector.free(rs, ps, con);</p><p><b>  }</b></p><p><b&g

45、t;  return b;</b></p><p><b>  }</b></p><p>  3.3.2 編輯新聞:</p><p><b>  功能:修改新聞內容</b></p><p>  實現:根據新聞的ID,修改新聞信息。成功則返回true,否則返回false </p&g

46、t;<p>  public boolean editArticle(String news_type, String news_title,String news_keys, String news_author, String news_content,String news_origin, String news_time, int news_read,String news_id){</p><

47、p>  boolean b = false;</p><p>  String sql = "update news set news_type=?,news_keys=?,news_author=?,news_origin=?,news_content=?,news_title=?,news_read=?,news_time=? where news_id=?";</p>

48、<p><b>  try {</b></p><p>  con = DBConnector.getConnection();</p><p>  ps = con.prepareStatement(sql);</p><p>  ps.setString(1, news_type);</p><p>  

49、ps.setString(2, news_keys);</p><p>  ps.setString(3, news_author);</p><p>  ps.setString(4, news_origin);</p><p>  ps.setString(5, news_content);</p><p>  ps.setString(

50、6, news_title);</p><p>  ps.setInt(7, news_read);</p><p>  ps.setString(8, news_time);</p><p>  ps.setString(9, news_id);</p><p>  int result = ps.executeUpdate();</

51、p><p>  if (result != 0) {</p><p><b>  b = true;</b></p><p><b>  }</b></p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace(

52、);</p><p><b>  }finally{</b></p><p>  DBConnector.free(rs, ps, con);</p><p><b>  }</b></p><p><b>  return b;</b></p><p>

53、;<b>  }</b></p><p>  3.3.3 刪除新聞:</p><p><b>  功能:刪除指定新聞</b></p><p>  實現:根據該新聞ID刪除記錄,成功返回true,否則返回false.</p><p>  public boolean deleteNews(String

54、 news_id){</p><p>  boolean b = false;</p><p><b>  try {</b></p><p>  con = DBConnector.getConnection();</p><p>  ps = con.prepareStatement("delete fro

55、m news where news_id=?");</p><p>  ps.setString(1, news_id);</p><p>  if(ps.executeUpdate()!=0){</p><p><b>  b=true;</b></p><p><b>  }</b>&

56、lt;/p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }finally{</b></p><p>  DBConnector.free(rs, ps, con);</p><p><

57、b>  }</b></p><p><b>  return b;</b></p><p><b>  }</b></p><p>  3.3.3 搜索新聞:</p><p>  功能:根據關鍵字搜索新聞</p><p>  實現:接收搜索關鍵字,對新聞進行

58、模糊搜索,并將搜索結果封裝到一個PageModel的Bean中,該Ban存放了搜索結果的所有信息,返回至JSP頁面后即可取出相應信息并顯示。</p><p>  public PageModel<News> searchNews(String key,int pageNow){</p><p>  PageModel<News> newsModel = new Pa

59、geModel<News>();</p><p>  ArrayList<News> newsList = new ArrayList<News>();</p><p>  int totalRecord=0;</p><p><b>  try {</b></p><p>  con

60、 = DBConnector.getConnection();</p><p>  ps = con.prepareStatement("select count(*) from news where news_title like ?");</p><p>  ps.setString(1, "%"+key+"%");</

61、p><p>  rs = ps.executeQuery();</p><p>  if(rs.next()){</p><p>  totalRecord = rs.getInt(1);</p><p><b>  }</b></p><p>  ps = con.prepareStatement(

62、"select * from news where news_title like ? limit ?,?");</p><p>  ps.setString(1, "%"+key+"%");</p><p>  ps.setInt(2, pageSize*(pageNow-1));</p><p>  p

63、s.setInt(3, pageSize);</p><p>  rs = ps.executeQuery();</p><p>  while(rs.next()){</p><p>  News news = new News();</p><p>  news.setNews_id(rs.getInt(1));</p>&

64、lt;p>  news.setNews_type(rs.getString(2));</p><p>  news.setNews_keys(rs.getString(3));</p><p>  news.setNews_origin(rs.getString(5));</p><p>  news.setNews_title(rs.getString(7)

65、);</p><p>  news.setNews_time(rs.getString(9));</p><p>  newsList.add(news);</p><p><b>  }</b></p><p>  } catch (SQLException e) {</p><p>  e.p

66、rintStackTrace();</p><p><b>  }finally{</b></p><p>  DBConnector.free(rs, ps, con);</p><p><b>  }</b></p><p>  newsModel.setList(newsList);</

67、p><p>  newsModel.setPageNow(pageNow);</p><p>  newsModel.setPageSize(pageSize);</p><p>  newsModel.setTotalRecords(totalRecord);</p><p>  return newsModel;</p><

68、;p><b>  }</b></p><p><b>  3.4 上傳管理</b></p><p>  3.4.1 上傳文件</p><p>  功能:實現文件上傳,可一次上傳多個文件,并對文件大小、類型進行過濾</p><p>  實現:使用apache的common-fileupload組

69、件實現,將文件上傳至服務器,同時在數據庫中存儲相應文件的信息。</p><p><b>  1、上傳至服務器:</b></p><p>  package com.king.action;</p><p>  import java.io.File;</p><p>  import java.io.FileInputS

70、tream;</p><p>  import java.io.FileOutputStream;</p><p>  import java.io.InputStream;</p><p>  import java.io.OutputStream;</p><p>  import java.util.Date;</p>&

71、lt;p>  import java.util.List;</p><p>  import org.apache.struts2.ServletActionContext;</p><p>  import com.king.dao.UploadManager;</p><p>  import com.king.utils.DateFormatEditor

72、;</p><p>  import com.opensymphony.xwork2.ActionSupport;</p><p>  public class UploadAction extends ActionSupport {</p><p>  private List<File> file;//file對應于表單的file</p

73、><p>  private List<String> fileFileName;</p><p>  private List<String> fileContenType;</p><p>  private String savePath;</p><p>  private int id;</p>

74、<p>  UploadManager uploadManager = new UploadManager();</p><p>  public int getId() {</p><p>  return id;</p><p><b>  }</b></p><p>  public void setI

75、d(int id) {</p><p>  this.id = id;</p><p><b>  }</b></p><p>  public String getSavePath() {</p><p>  return savePath;</p><p><b>  }</b

76、></p><p>  public void setSavePath(String savePath) {</p><p>  this.savePath = savePath;</p><p><b>  }</b></p><p>  public List<File> getFile() {&l

77、t;/p><p>  return file;</p><p><b>  }</b></p><p>  public void setFile(List<File> file) {</p><p>  this.file = file;</p><p><b>  }<

78、/b></p><p>  public List<String> getFileFileName() {</p><p>  return fileFileName;</p><p><b>  }</b></p><p>  public void setFileFileName(List<S

79、tring> fileFileName) {</p><p>  this.fileFileName = fileFileName;</p><p><b>  }</b></p><p>  public List<String> getFileContenType() {</p><p>  ret

80、urn fileContenType;</p><p><b>  }</b></p><p>  public void setFileContenType(List<String> fileContenType) {</p><p>  this.fileContenType = fileContenType;</p>

81、;<p><b>  }</b></p><p>  @SuppressWarnings("deprecation")</p><p><b>  @Override</b></p><p>  public String execute(){</p><p>&l

82、t;b>  try{</b></p><p>  for(int i = 0;i < file.size();++i){</p><p>  if(file.get(i).length()!=0){</p><p>  InputStream is = new FileInputStream(file.get(i));</p>

83、<p>  String root = ServletActionContext.getRequest().getRealPath(this.getSavePath());</p><p>  File destFile = new File(root,this.getFileFileName().get(i));</p><p>  String time = new Date

84、FormatEditor().dateEditor2(new Date());</p><p>  if(uploadManager.savePath(null,this.getFileFileName().get(i), time)){</p><p>  OutputStream os = new FileOutputStream(destFile);</p><p

85、>  int length = 0;</p><p>  byte[] buffer = new byte[400];</p><p>  while((length = is.read(buffer)) >0){</p><p>  os.write(buffer, 0, length);</p><p><b>  

86、}</b></p><p>  is.close();</p><p>  os.close();</p><p>  ServletActionContext.getRequest().setAttribute("state", "uploadFileSucc");</p><p>  r

87、eturn SUCCESS;</p><p><b>  }else{</b></p><p>  return ERROR;</p><p><b>  }</b></p><p><b>  }else{</b></p><p>  return E

88、RROR;</p><p><b>  }</b></p><p><b>  }</b></p><p>  }catch(Exception e){</p><p>  e.printStackTrace();</p><p>  return ERROR;</p&

89、gt;<p><b>  }</b></p><p>  return SUCCESS;</p><p><b>  }</b></p><p><b>  }</b></p><p>  2、文件信息存入數據庫:</p><p>  pu

90、blic boolean savePath(String filePath,String name,String time) {</p><p>  boolean flag = false;</p><p>  String sql = "insert into upload values (null,?,?,?)";</p><p><

91、b>  try {</b></p><p>  con = DBConnector.getConnection();</p><p>  pstmt = con.prepareStatement(sql);</p><p>  pstmt.setString(1, filePath);</p><p>  pstmt.set

92、String(2, name);</p><p>  pstmt.setString(3, time);</p><p>  int result = pstmt.executeUpdate();</p><p>  if(result != 0) {</p><p>  flag = true;</p><p>&l

93、t;b>  }</b></p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }finally{</b></p><p>  DBConnector.free(rs, pstmt, con);&

94、lt;/p><p><b>  }</b></p><p>  return flag;</p><p><b>  }</b></p><p>  3.4.2 刪除文件</p><p>  功能:刪除服務器中供下載的文件</p><p>  實現:刪除服

95、務器中供下載的文件,并刪除數據庫中相應的記錄</p><p>  package com.king.action;</p><p>  import java.io.File;</p><p>  import org.apache.struts2.ServletActionContext;</p><p>  import org.omg.

96、CORBA.Request;</p><p>  import com.king.dao.UploadManager;</p><p>  import com.opensymphony.xwork2.ActionSupport;</p><p>  public class DeleteFileAction extends ActionSupport {</

97、p><p>  private int id;</p><p>  public int getId() {</p><p>  return id;</p><p><b>  }</b></p><p>  public void setId(int id) {</p><p&

98、gt;  this.id = id;</p><p><b>  }</b></p><p><b>  @Override</b></p><p>  public String execute() throws Exception {</p><p>  UploadManager manage

99、r = new UploadManager();</p><p>  String path = ServletActionContext.getRequest().getRealPath("/upload/file");</p><p>  System.out.println(manager.getFileNameById(this.getId()));</p

100、><p>  File file = new File(path,manager.getFileNameById(this.getId()));</p><p><b>  try{</b></p><p>  if(manager.deleteFile(this.getId())){</p><p>  file.dele

101、te();//刪除磁盤上的文件</p><p>  ServletActionContext.getRequest().setAttribute("state", "deleteFileSuc");</p><p><b>  }</b></p><p>  }catch(Exception e){<

102、;/p><p>  e.printStackTrace();</p><p>  ServletActionContext.getRequest().setAttribute("state", "deleteFileFail");</p><p>  return ERROR;</p><p><b&

103、gt;  }</b></p><p>  return SUCCESS;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  3.5 留言管理</b></p><p><b>

104、  功能:刪除留言</b></p><p>  實現:根據后臺指定要刪除留言的Id,在數據庫中刪除留言及其下級留言</p><p>  public boolean deleteMessage(String id){</p><p>  boolean b = false;</p><p><b>  try {<

105、/b></p><p>  con = DBConnector.getConnection();</p><p>  ps =con.prepareStatement("delete from messages where pid=?");</p><p>  ps.setString(1, id);</p><p>

106、;  ps.executeUpdate();</p><p>  ps = con.prepareStatement("delete from messages where Id=?");</p><p>  ps.setString(1, id);</p><p>  if(ps.executeUpdate()==1){</p>

107、<p><b>  b = true;</b></p><p><b>  }</b></p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }finally{</

108、b></p><p>  DBConnector.free(rs, null, con);</p><p><b>  }</b></p><p><b>  return b;</b></p><p><b>  }</b></p><p>&l

109、t;b>  3.6 用戶管理</b></p><p>  3.6.1 添加用戶</p><p>  public boolean addUser(String username,String password){</p><p>  boolean b = false;</p><p><b>  try {<

110、;/b></p><p>  con = DBConnector.getConnection();</p><p>  ps = con.prepareStatement("insert into admin(name,password) values(?,?)");</p><p>  ps.setString(1, username);

111、</p><p>  ps.setString(2, password);</p><p>  if(ps.executeUpdate()==1){</p><p><b>  b = true;</b></p><p><b>  }</b></p><p>  } cat

112、ch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }finally{</b></p><p>  DBConnector.free(rs, ps, con);</p><p><b>  }</b></p>

113、;<p><b>  return b;</b></p><p><b>  }</b></p><p>  3.6.2 刪除用戶</p><p>  public boolean delUser(String userid){</p><p>  boolean b = false;

114、</p><p><b>  try {</b></p><p>  con = DBConnector.getConnection();</p><p>  ps = con.prepareStatement("delete from admin where Id=?");</p><p>  ps

115、.setString(1, userid);</p><p>  if(ps.executeUpdate()==1){</p><p><b>  b = true;</b></p><p><b>  }</b></p><p>  } catch (SQLException e) {</p

116、><p>  e.printStackTrace();</p><p><b>  }finally{</b></p><p>  DBConnector.free(rs, ps, con);</p><p><b>  }</b></p><p><b>  retu

117、rn b;</b></p><p><b>  }</b></p><p><b>  3.7 建立數據庫</b></p><p>  本系統(tǒng)采用MySql6.0數據庫</p><p>  3.7.1 表admin:</p><p>  CREATE TABLE

118、`admin` (</p><p>  `Id` int(11) NOT NULL AUTO_INCREMENT,</p><p>  `name` varchar(20) NOT NULL DEFAULT '',</p><p>  `password` varchar(30) DEFAULT NULL,</p><p> 

119、 PRIMARY KEY (`Id`)</p><p>  ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=gbk;</p><p>  3.7.2 表news:</p><p>  CREATE TABLE `news` (</p><p>  `news_id` int(11) NOT N

120、ULL AUTO_INCREMENT,</p><p>  `news_type` varchar(10) NOT NULL,</p><p>  `news_keys` varchar(50) DEFAULT '',</p><p>  `news_author` varchar(30) DEFAULT '',</p>

121、<p>  `news_origin` varchar(80) DEFAULT '',</p><p>  `news_content` longtext NOT NULL,</p><p>  `news_title` varchar(100) NOT NULL,</p><p>  `news_read` int(11) DEFAUL

122、T '0',</p><p>  `news_time` varchar(20) NOT NULL,</p><p>  PRIMARY KEY (`news_id`)</p><p>  ) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=gbk;</p><p>  `3.

123、7.3 表upload:</p><p>  CREATE TABLE `upload` (</p><p>  `id` int(11) NOT NULL AUTO_INCREMENT,</p><p>  `path` varchar(100) DEFAULT NULL,</p><p>  `name` varchar(30) NOT

124、NULL,</p><p>  `time` varchar(30) NOT NULL,</p><p>  PRIMARY KEY (`id`)</p><p>  ) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=gbk;</p><p><b>  總結</b>&l

溫馨提示

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

評論

0/150

提交評論