java-web編程技術(shù)課程設(shè)計(jì)--項(xiàng)目管理系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩31頁(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、<p><b>  摘 要</b></p><p>  隨著信息技術(shù)的發(fā)展,計(jì)算機(jī)已被廣泛的應(yīng)用于社會(huì)的各個(gè)領(lǐng)域,成為推動(dòng)社會(huì)發(fā)展的技術(shù)動(dòng)力。而在計(jì)算機(jī)應(yīng)用中,軟件的作用十分突出,軟件已經(jīng)發(fā)展成為信息技術(shù)的核心,主導(dǎo)著信息產(chǎn)品的開發(fā)和信息技術(shù)市場(chǎng)的進(jìn)一步的開拓。</p><p>  項(xiàng)目管理系統(tǒng),就是項(xiàng)目的管理者應(yīng)用專門管理項(xiàng)目的系統(tǒng)軟件,在有限的資源約束下

2、,運(yùn)用系統(tǒng)的觀點(diǎn)、方法和理論,對(duì)項(xiàng)目涉及的全部工作進(jìn)行有效地管理。它從項(xiàng)目的投資決策開始到項(xiàng)目結(jié)束的全過(guò)程進(jìn)行計(jì)劃、組織、指揮、協(xié)調(diào)、控制和評(píng)價(jià),以實(shí)現(xiàn)項(xiàng)目的目標(biāo)。本文闡述了一個(gè)基于JavaWeb設(shè)計(jì)的項(xiàng)目管理系統(tǒng),采用MVC的三層設(shè)計(jì)模式Jsp-Servlet-JavaBean.即前端由Jsp網(wǎng)頁(yè)實(shí)現(xiàn)邏輯,后臺(tái)通過(guò)對(duì)數(shù)據(jù)庫(kù)的操作實(shí)現(xiàn)數(shù)據(jù)邏輯。結(jié)合傳統(tǒng)的管理,為了解決企業(yè)項(xiàng)目管理過(guò)程中的工作任務(wù)管理問(wèn)題,本系統(tǒng)實(shí)現(xiàn)了對(duì)項(xiàng)目的增加、刪除、

3、修改、查詢,進(jìn)一步對(duì)項(xiàng)目進(jìn)行按任務(wù)分配和追蹤,實(shí)現(xiàn)了中小型企業(yè)對(duì)項(xiàng)目的管理。</p><p>  關(guān)鍵詞:項(xiàng)目 管理 MVC 任務(wù)分配 </p><p><b>  目錄</b></p><p><b>  摘 要III</b></p><p><b>  目錄IV</b>

4、;</p><p>  1需 求 分 析1</p><p><b>  1.1問(wèn)題描述1</b></p><p>  1.2 系統(tǒng)需求1</p><p>  2概 要 設(shè) 計(jì)2</p><p>  2.1系統(tǒng)總體結(jié)構(gòu)2</p><p>  2.2 管理員信息管理功

5、能模塊2</p><p>  3詳 細(xì) 設(shè) 計(jì)4</p><p>  3.1數(shù)據(jù)庫(kù)設(shè)計(jì)4</p><p>  3.1.1 E-R圖設(shè)計(jì):4</p><p>  3.1.2 數(shù)據(jù)字典5</p><p><b>  3.2界面設(shè)計(jì)6</b></p><p>  3.

6、3 公共類設(shè)計(jì)11</p><p>  3.3.1 工具框架層com.cqust.Util11</p><p>  3.3.2 實(shí)體模型層com.cqust.Bean11</p><p>  3.3.3 數(shù)據(jù)接口層com.cqust.Dao13</p><p>  3.4登陸模塊設(shè)計(jì)20</p><p>  

7、3.5修改密碼模塊設(shè)計(jì)21</p><p>  4 系 統(tǒng) 測(cè) 試22</p><p><b>  5總 結(jié)28</b></p><p><b>  參考文獻(xiàn)29</b></p><p><b>  致 謝30</b></p><p><

8、b>  1需 求 分 析</b></p><p><b>  1.1問(wèn)題描述</b></p><p>  在網(wǎng)絡(luò)飛速發(fā)展的今天,網(wǎng)絡(luò)給人們帶來(lái)了很多便利,越來(lái)越來(lái)的管理網(wǎng)絡(luò)化。基于傳統(tǒng)管理系統(tǒng)許多不方便,公司項(xiàng)目的管理系統(tǒng)希望得到改善,不再局限于傳統(tǒng)項(xiàng)目管理,因此希望經(jīng)過(guò)項(xiàng)目的在線分配后能方便更好的管理與分配,在線項(xiàng)目管理對(duì)將每個(gè)項(xiàng)目的管理劃分為無(wú)數(shù)

9、個(gè)小任務(wù),能更好的對(duì)任務(wù)的分配,同時(shí)對(duì)任務(wù)的進(jìn)度的了解。</p><p><b>  1.2 系統(tǒng)需求</b></p><p>  在該網(wǎng)站中,用戶類型分為:管理員、普通員工,本系統(tǒng)以及功能設(shè)計(jì)都根據(jù)傳統(tǒng)的項(xiàng)目管理,進(jìn)行了以下需求分析:</p><p>  管理員登陸后能夠?qū)ο到y(tǒng)的所有信息進(jìn)行管理,如項(xiàng)目管理,任務(wù)管理,人員管理以及個(gè)人信息

10、的維護(hù)。項(xiàng)目管理主要功能為:(1)新增項(xiàng)目:新增項(xiàng)目編號(hào)、名稱、項(xiàng)目進(jìn)度、負(fù)責(zé)人、(申請(qǐng)時(shí)間)、(審核狀態(tài))(2)刪除項(xiàng)目:對(duì)已經(jīng)完成的項(xiàng)目和停止的項(xiàng)目進(jìn)行刪除,以免對(duì)系統(tǒng)的冗余(3)修改項(xiàng)目:修改項(xiàng)目名稱、修改項(xiàng)目負(fù)責(zé)人、修改項(xiàng)目進(jìn)度,對(duì)項(xiàng)目進(jìn)度的更新是依賴于各個(gè)任務(wù)的進(jìn)度。人員管理主要功能:(1)新增員工:?jiǎn)T工編號(hào)、員工名、性別、聯(lián)系方式(2)刪除:刪除沒(méi)有任務(wù)的員工(3)修改員工:修改指定員工各信息。任務(wù)管理的主要功能為:(1)分

11、配任務(wù):根據(jù)新添加的任務(wù)對(duì)其分配,如任務(wù)編號(hào)、項(xiàng)目名、員工、任務(wù)、進(jìn)度(2)修改任務(wù):對(duì)任務(wù)的各項(xiàng)信息進(jìn)行維護(hù),如任務(wù)的權(quán)值。查詢的主要功能為:對(duì)項(xiàng)目信息及分配情況的查詢,能更好的把握項(xiàng)目的進(jìn)度情況。(1)查詢員工:查詢員工各項(xiàng)信息(2)查詢項(xiàng)目:查詢項(xiàng)目各項(xiàng)信息(3)查詢?nèi)蝿?wù):查詢?nèi)蝿?wù)各項(xiàng)信息</p><p>  員工登陸后能夠查詢個(gè)人參與的任務(wù)以及進(jìn)度,方便自己對(duì)工時(shí)的管理,隨著員工進(jìn)度的更新,整個(gè)項(xiàng)目的進(jìn)度

12、會(huì)進(jìn)行更新,也可以對(duì)個(gè)人的信息的維護(hù)。</p><p><b>  2概 要 設(shè) 計(jì)</b></p><p><b>  2.1系統(tǒng)總體結(jié)構(gòu)</b></p><p>  圖2.1 系統(tǒng)結(jié)構(gòu)圖</p><p>  2.2 管理員信息管理功能模塊</p><p>  管理員信息功

13、能模塊設(shè)計(jì)如下圖2.2所示:</p><p>  圖2.2 管理員功能圖</p><p><b>  3詳 細(xì) 設(shè) 計(jì)</b></p><p><b>  3.1數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p>  3.1.1 E-R圖設(shè)計(jì):</p><p>  網(wǎng)站數(shù)據(jù)庫(kù)采用PowerD

14、esigner設(shè)計(jì),包括概念模型、物理模型以及數(shù)據(jù)字典,E-R圖如下圖3.1所示:</p><p>  圖3.1 數(shù)據(jù)庫(kù)E-R圖</p><p>  3.1.2 數(shù)據(jù)字典</p><p>  表3.1 實(shí)體T01管理員信息表的屬性的清單 </p><p>  表3.2實(shí)體T02項(xiàng)目表的屬性的清單</p><p&

15、gt;  表3.3實(shí)體T03員工信息表的屬性的清單</p><p>  表3.4實(shí)體T04任務(wù)表的屬性的清單</p><p><b>  3.2界面設(shè)計(jì)</b></p><p>  本網(wǎng)站主要頁(yè)面為管理員主頁(yè)、項(xiàng)目信息界面、任務(wù)信息界面、人員管理界面以及個(gè)人主頁(yè),分別對(duì)應(yīng)頁(yè)面為index.jsp、project.jsp、task.jsp、sta

16、ff.jsp、staffindex.jsp、userpage.jsp.以下為管理里員主界面index.jsp部分代碼:</p><p>  <%@ page language="java" contentType="text/html; charset=utf-8"</p><p>  pageEncoding="utf-8"

17、;%></p><p>  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"></p><p><b>  <html></b></p>

18、;<p><b>  <head></b></p><p>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></p><p>  <link rel="stylesheet"

19、href="css/bootstrap.css"></p><p>  <link rel="stylesheet" href="css/font-awesome.css"></p><p>  <link rel="stylesheet" href="css/index.cs

20、s"><!-- 修改自Bootstrap官方Demon,你可以按自己的喜好制定CSS樣式 --></p><p>  <link rel="stylesheet" href="css/font-change.css"><!-- 將默認(rèn)字體從宋體換成微軟雅黑(個(gè)人比較喜歡微軟雅黑,移動(dòng)端和桌面端顯示效果比較接近) -->

21、</p><p>  <script type="text/javascript" src="js/jquery-1.12.3.min.js"></script></p><p>  <script type="text/javascript" src="js/bootstrap.min

22、.js"></script></p><p>  <title>主頁(yè)面</title></p><p>  <script type="text/javascript"></p><p>  function check() {</p><p>  if(c

23、onfirm("您確定要退出嗎?")){</p><p>  window.location.href = "leave.jsp"</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  /*<

24、;/b></p><p>  * 對(duì)選中的標(biāo)簽激活active狀態(tài),對(duì)先前處于active狀態(tài)但之后未被選中的標(biāo)簽取消active</p><p>  * (實(shí)現(xiàn)左側(cè)菜單中的標(biāo)簽點(diǎn)擊后變色的效果)</p><p><b>  */</b></p><p>  $(document).ready(function (

25、) {</p><p>  $('ul.nav > li').click(function (e) {</p><p>  //e.preventDefault();加上這句則導(dǎo)航的<a>標(biāo)簽會(huì)失效</p><p>  $('ul.nav > li').removeClass('active'

26、);</p><p>  $(this).addClass('active');</p><p><b>  });</b></p><p><b>  });</b></p><p><b>  /*</b></p><p>  * 解

27、決ajax返回的頁(yè)面中含有javascript的辦法:</p><p>  * 把xmlHttp.responseText中的腳本都抽取出來(lái),不管AJAX加載的HTML包含多少個(gè)腳本塊,我們對(duì)找出來(lái)的腳本塊都調(diào)用eval方法執(zhí)行它即可</p><p><b>  */</b></p><p>  function executeScript(h

28、tml)</p><p><b>  {</b></p><p>  var reg = /<script[^>]*>([^\x00]+)$/i;</p><p>  //對(duì)整段HTML片段按<\/script>拆分</p><p>  var htmlBlock = html.split(

29、"<\/script>");</p><p>  for (var i in htmlBlock) </p><p><b>  {</b></p><p>  var blocks;//匹配正則表達(dá)式的內(nèi)容數(shù)組,blocks[1]就是真正的一段腳本內(nèi)容,因?yàn)榍懊鎟eg定義我們用了括號(hào)進(jìn)行了捕獲分組</p&

30、gt;<p>  if (blocks = htmlBlock[i].match(reg)) </p><p><b>  {</b></p><p>  //清除可能存在的注釋標(biāo)記,對(duì)于注釋結(jié)尾-->可以忽略處理,eval一樣能正常工作</p><p>  var code = blocks[1].replace(/<

31、;!--/, '');</p><p><b>  try </b></p><p><b>  {</b></p><p>  eval(code) //執(zhí)行腳本</p><p><b>  } </b></p><p>  catch

32、 (e) </p><p><b>  {</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b>

33、</p><p>  function showAtRight(url) {</p><p>  var xmlHttp;</p><p>  if (window.XMLHttpRequest) {</p><p>  // code for IE7+, Firefox, Chrome, Opera, Safari</p>&

34、lt;p>  xmlHttp=new XMLHttpRequest();//創(chuàng)建 XMLHttpRequest對(duì)象</p><p><b>  }</b></p><p><b>  else {</b></p><p>  // code for IE6, IE5</p><p>  xm

35、lHttp=new ActiveXObject("Microsoft.XMLHTTP");</p><p><b>  }</b></p><p>  xmlHttp.onreadystatechange=function() {</p><p>  //onreadystatechange — 當(dāng)readystate變

36、化時(shí)調(diào)用后面的方法</p><p>  if (xmlHttp.readyState == 4) {</p><p>  //xmlHttp.readyState == 4——finished downloading response</p><p>  if (xmlHttp.status == 200) {</p><p>  //x

37、mlHttp.status == 200——服務(wù)器反饋正常</p><p>  document.getElementById("content").innerHTML=xmlHttp.responseText;//重設(shè)頁(yè)面中id="content"的div里的內(nèi)容</p><p>  executeScript(xmlHttp.res

38、ponseText);//執(zhí)行從服務(wù)器返回的頁(yè)面內(nèi)容里包含的JavaScript函數(shù)</p><p><b>  }</b></p><p><b>  //錯(cuò)誤狀態(tài)處理</b></p><p>  else if (xmlHttp.status == 404){</p><p>  alert(

39、"出錯(cuò)了? (錯(cuò)誤代碼:404 Not Found),……!"); </p><p>  /* 對(duì)404的處理 */</p><p><b>  return;</b></p><p><b>  }</b></p><p>  else if (xmlHttp.status

40、 == 403) { </p><p>  alert("出錯(cuò)了? (錯(cuò)誤代碼:403 Forbidden),……"); </p><p>  /* 對(duì)403的處理 */ </p><p><b>  return;</b></p><p><b>  }</b><

41、/p><p><b>  else {</b></p><p>  alert("出錯(cuò)了? (錯(cuò)誤代碼:" + request.status + "),……"); </p><p>  /* 對(duì)出現(xiàn)了其他錯(cuò)誤代碼所示錯(cuò)誤的處理 */</p><p><b>  ret

42、urn;</b></p><p><b>  } </b></p><p><b>  } </b></p><p><b>  }</b></p><p>  //把請(qǐng)求發(fā)送到服務(wù)器上的指定文件(url指向的文件)進(jìn)行處理</p><p&g

43、t;  xmlHttp.open("GET", url, true);//true表示異步處理</p><p>  xmlHttp.send();</p><p><b>  }</b></p><p><b>  </script></b></p><p>

44、<b>  </head></b></p><p><b>  <body></b></p><p>  <!-- 頂部菜單==================================== --></p><p>  <nav class="navbar navb

45、ar-inverse navbar-fixed-top"></p><p>  <div class="container"></p><p>  <div class="navbar-header"></p><p>  <button type="button&quo

46、t; class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" ></p><p>  <span class="sr-only">Toggle navigation</span></p><

47、;p>  <span class="icon-bar"></span></p><p>  <span class="icon-bar"></span></p><p>  <span class="icon-bar"></span></p>

48、<p><b>  </button></b></p><p>  <a class="navbar-brand" href="index.jsp">項(xiàng)目管理系統(tǒng)</a></p><p>  <center><font color="red"

49、>管理員:<%=session.getAttribute("username1")%></font></center></p><p><b>  </div></b></p><p>  <div id="navbar" class="navbar-coll

50、apse collapse"></p><p>  <ul class="nav navbar-nav navbar-right"> </p><p>  <li><a href="###" onclick="showAtRight('addproject.j

51、sp')"></p><p>  <i class="fa fa-users"></i> &nbsp;添加新項(xiàng)目<span class="sr-only">(current)</span></a></li></p><p>  <li>

52、<a href="###" onclick="showAtRight('arrangeTask.jsp')"></p><p>  <i class="fa fa-globe"></i>&nbsp; 任務(wù)分配 <span class="sr-only">(curr

53、ent)</span></a></li></p><p>  <li><a href="###" onclick="showAtRight('addstaff.jsp')" ></p><p>  <i class="fa fa-users">

54、;</i> &nbsp;增加員工<span class="sr-only">(current)</span></a></li></p><p><b>  </ul></b></p><p><b>  </div></b><

55、/p><p><b>  </div></b></p><p><b>  </nav></b></p><p>  <!-- 左側(cè)菜單選項(xiàng)========================================= --></p><p>  <div

56、class="container-fluid"></p><p>  <div class="row-fluie"></p><p>  <div class="col-sm-3 col-md-2 sidebar"></p><p>  <ul class="

57、;nav nav-sidebar"></p><p>  <!-- 一級(jí)菜單 --></p><p>  <li class="active"><a href="###"></p><p>  &nbsp; 系統(tǒng)主菜單 <span class="sr-

58、only">(current)</span></a></p><p><b>  </li> </b></p><p>  <li><a href="###" onclick="showAtRight('project.jsp')">&l

59、t;/p><p>  <i class="fa fa-globe"></i>&nbsp; 項(xiàng)目信息 <span class="sr-only">(current)</span></a></p><p><b>  </li> </b></p>

60、<p>  <li><a href="###" onclick="showAtRight('task.jsp')"></p><p>  <i class="fa fa-globe"></i>&nbsp; 任務(wù)維護(hù) <span class="sr-onl

61、y">(current)</span></a></p><p><b>  </li> </b></p><p>  <li><a href="###" onclick="showAtRight('staff.jsp')"></p&

62、gt;<p>  <i class="fa fa-user"></i>&nbsp; 員工信息維護(hù) <span class="sr-only">(current)</span></a></p><p><b>  </li> </b></p>&l

63、t;p>  <li><a href="###" onclick="showAtRight('updatepass.jsp')"></p><p>  <i class="fa fa-file-text"></i>&nbsp; 修改密碼 <span class="

64、sr-only">(current)</span></a></p><p><b>  </li> </b></p><p>  <li><a href="###" onclick="check()"></p><p>  <

65、;i class="fa fa-file-text"></i>&nbsp; 退出系統(tǒng) <span class="sr-only">(current)</span></a></p><p><b>  </li> </b></p><p><b>

66、  </ul></b></p><p><b>  </div></b></p><p><b>  </div></b></p><p>  </div> </p><p>  <div class="col-sm

67、-9 col-sm-offset-3 col-md-10 col-md-offset-2 main"></p><p>  <h1 class="page-header">控制臺(tái)<small>&nbsp;&nbsp;&nbsp;歡迎使用項(xiàng)目后臺(tái)管理系統(tǒng)</small></h1></p><

68、;p>  <div id="content"></div> </div> </p><p><b>  </body></b></p><p><b>  </html></b></p><p><b>  3.3 公共類設(shè)

69、計(jì)</b></p><p>  本網(wǎng)站主要分為四層,分別是Util、Model、Dao以及Control.其中前四層為公共類,其中Util包封裝了所有的工具類,Model包封裝了實(shí)體類,Dao包封裝了一些對(duì)實(shí)體類實(shí)例化以及從數(shù)據(jù)庫(kù)讀寫數(shù)據(jù)等類,是對(duì)所有實(shí)體以及對(duì)實(shí)體操作方法的封裝,Control為對(duì)頁(yè)面控制的Servlet類。</p><p>  3.3.1 工具框架層com.

70、cqust.Util</p><p>  該層里僅有一個(gè)判斷是否輸入為空的類,代碼如下:</p><p>  package com.cqust.util;</p><p>  public class StringUtil {</p><p>  public static boolean isEmpty(String str){</

71、p><p>  if("".equals(str)||str==null){</p><p>  return true;</p><p><b>  }else{</b></p><p>  return false;</p><p><b>  }</b>

72、</p><p><b>  }</b></p><p>  public static boolean isNotEmpty(String str){</p><p>  if(!"".equals(str)&&str!=null){</p><p>  return true;&l

73、t;/p><p><b>  }else{</b></p><p>  return false;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p>

74、;<p>  3.3.2 實(shí)體模型層com.cqust.Bean</p><p>  在該層下有四個(gè)類,為Admin.java、Staff.java、Project.java、Task.java分別對(duì)應(yīng)數(shù)據(jù)庫(kù)內(nèi)的四個(gè)表,例如主要的項(xiàng)目類Project.java代碼如下:</p><p>  public class Project implements Serializabl

75、e{</p><p>  private String pid;</p><p>  private String pname;</p><p>  private String ano;</p><p>  private String pleader;</p><p>  private Date ptime;&l

76、t;/p><p>  private int progress;</p><p>  public Project() {</p><p><b>  super();</b></p><p>  // TODO Auto-generated constructor stub</p><p><

77、b>  }</b></p><p>  public Project(String pid, String pname, String ano, String pleader, Date ptime, int progress) {</p><p><b>  super();</b></p><p>  this.pid =

78、 pid;</p><p>  this.pname = pname;</p><p>  this.ano = ano;</p><p>  this.pleader = pleader;</p><p>  this.ptime = ptime;</p><p>  this.progress = progress

79、;</p><p><b>  }</b></p><p>  public String getPid() {</p><p>  return pid;</p><p><b>  }</b></p><p>  public void setPid(String pid

80、) {</p><p>  this.pid = pid;</p><p><b>  }</b></p><p>  public String getPname() {</p><p>  return pname;</p><p><b>  }</b></p&g

81、t;<p>  public void setPname(String pname) {</p><p>  this.pname = pname;</p><p><b>  }</b></p><p>  public String getAno() {</p><p>  return ano;<

82、;/p><p><b>  }</b></p><p>  public void setAno(String ano) {</p><p>  this.ano = ano;</p><p><b>  }</b></p><p>  public String getPlea

83、der() {</p><p>  return pleader;</p><p><b>  }</b></p><p>  public void setPleader(String pleader) {</p><p>  this.pleader = pleader;</p><p>&l

84、t;b>  }</b></p><p>  public Date getPtime() {</p><p>  return ptime;</p><p><b>  }</b></p><p>  public void setPtime(Date ptime) {</p><p

85、>  this.ptime = ptime;</p><p><b>  }</b></p><p>  public int getProgress() {</p><p>  return progress;</p><p><b>  }</b></p><p>

86、  public void setProgress(int progress) {</p><p>  this.progress = progress;</p><p><b>  }</b></p><p><b>  }</b></p><p>  3.3.3 數(shù)據(jù)接口層com.cqust.D

87、ao</p><p>  該層同樣也有四個(gè)類,為AdminDao.java、StaffDao.java、ProjectDao.java、taskDao.java分別對(duì)應(yīng)實(shí)體類包的四個(gè)類,用于對(duì)實(shí)體類的實(shí)例化,從數(shù)據(jù)庫(kù)讀寫數(shù)據(jù)。例如對(duì)任務(wù)的管理taskDao.java,代碼如下:主要實(shí)現(xiàn)的為任務(wù)的操作,任務(wù)分頁(yè)顯示在界面上,任務(wù)的增修改以及對(duì)進(jìn)度的更新。</p><p>  public c

88、lass taskDao extends BaseDao{</p><p><b>  /**</b></p><p>  * 查詢?nèi)蝿?wù)信息分頁(yè)顯示</p><p><b>  * </b></p><p>  * @return list</p><p><b>

89、  */</b></p><p>  public List<Task> getTaskByPage(int pageSize,int pageNow){</p><p>  List<Task> list=new ArrayList<Task>();</p><p>  Connection conn;</p&

90、gt;<p><b>  try {</b></p><p>  conn=getConnection();</p><p>  String sql="select top "+pageSize+" * from dbo.task where tno not in (select top ((?-1)*?) tno fro

91、m dbo.task)";</p><p>  PreparedStatement pstatement=conn.prepareStatement(sql);</p><p>  pstatement.setInt(1, pageNow);</p><p>  pstatement.setInt(2, pageSize);</p><

92、p>  ResultSet rs=pstatement.executeQuery();</p><p>  while(rs.next()){</p><p>  Task task=new Task();</p><p>  String tno=rs.getString("tno");</p><p>  St

93、ring sno = rs.getString("sno");</p><p>  String pid= rs.getString("pid");</p><p>  String tname=rs.getString("tname");</p><p>  int tprogress = rs.getI

94、nt("tprogress");</p><p>  int ratio = rs.getInt("ratio");</p><p>  task=new Task(tno,sno,pid,tname,tprogress,ratio);</p><p>  list.add(task);</p><p>

95、;<b>  }</b></p><p>  } catch (Exception e) {</p><p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p><p><b>  }</b></p

96、><p>  return list;</p><p><b>  }</b></p><p><b>  /**</b></p><p>  * 獲取任務(wù)表記錄分頁(yè)的總數(shù)</p><p><b>  * </b></p><p> 

97、 * @return t2</p><p><b>  */</b></p><p>  public int PageCount(){</p><p>  int recordCount=0,t1=0,t2=0;</p><p>  Connection con=null; </p><p>

98、  PreparedStatement psta=null; </p><p>  ResultSet rs=null; </p><p>  String sql="select * from dbo.task "; </p><p><b>  try{ </b></p><p>  con

99、=getConnection(); </p><p>  psta=con.prepareStatement(sql); </p><p>  rs=psta.executeQuery(); </p><p>  while(rs.next()){ </p><p>  recordCount++;</p><p&

100、gt;<b>  } </b></p><p>  t1=recordCount%3;</p><p>  t2=recordCount/3; </p><p>  }catch(Exception e){ </p><p>  e.printStackTrace(); </p><p>&

101、lt;b>  }</b></p><p>  if(t1 != 0){</p><p><b>  t2=t2+1;}</b></p><p>  System.out.println(t2);</p><p>  return t2;</p><p><b>  }&

102、lt;/b></p><p><b>  /**</b></p><p>  * 通過(guò)編號(hào)查詢?nèi)蝿?wù)信息</p><p><b>  * </b></p><p>  * @return task</p><p><b>  */</b></p

103、><p>  public Task findTaskByid(String id) {</p><p>  Connection conn=null;</p><p>  Task task = null;</p><p><b>  try {</b></p><p>  conn=getConn

104、ection();</p><p>  String sql = "select * from dbo.task where tno=?";</p><p>  PreparedStatement psmt = conn.prepareStatement(sql);</p><p>  psmt.setString(1, id);</p&g

105、t;<p>  ResultSet rs = psmt.executeQuery();</p><p>  while (rs.next()) {</p><p>  String tno=rs.getString("tno");</p><p>  String sno = rs.getString("sno"

106、);</p><p>  String pid= rs.getString("pid");</p><p>  String tname= rs.getString("tname");</p><p>  int tprogress = rs.getInt("tprogress");</p>

107、<p>  int ratio = rs.getInt("ratio");</p><p>  task=new Task(tno,sno,pid,tname,tprogress,ratio);</p><p><b>  }</b></p><p>  } catch (Exception e) {</p&

108、gt;<p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  return task;</p><p><b>  }</b></p

109、><p>  //通過(guò)編號(hào)查詢?nèi)蝿?wù)信息</p><p>  public Task findSnoByid(String sid) {</p><p>  Connection conn=null;</p><p>  Task task=null;</p><p><b>  try {</b>&l

110、t;/p><p>  conn=getConnection();</p><p>  String sql = "select * from dbo.task where sno=?";</p><p>  PreparedStatement psmt = conn.prepareStatement(sql);</p><p>

111、;  psmt.setString(1, sid);</p><p>  ResultSet rs = psmt.executeQuery();</p><p>  while (rs.next()) {</p><p>  String tno=rs.getString("tno");</p><p>  String

112、sno = rs.getString("sno");</p><p>  String pid= rs.getString("pid");</p><p>  String tname= rs.getString("tname");</p><p>  int tprogress = rs.getInt(&

113、quot;tprogress");</p><p>  int ratio = rs.getInt("ratio");</p><p>  task=new Task(tno,sno,pid,tname,tprogress,ratio);</p><p><b>  }</b></p><p&g

114、t;  } catch (Exception e) {</p><p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  return task;</p><

115、;p><b>  }</b></p><p>  //通過(guò)項(xiàng)目編號(hào)查詢?nèi)蝿?wù)信息</p><p>  public boolean findPidByid(String pid) {</p><p>  Connection conn=null;</p><p>  boolean flag=false;</p

116、><p><b>  try {</b></p><p>  conn=getConnection();</p><p>  String sql = "select * from dbo.task where pid=?";</p><p>  PreparedStatement psmt = conn

117、.prepareStatement(sql);</p><p>  psmt.setString(1, pid);</p><p>  ResultSet rs = psmt.executeQuery();</p><p>  if (rs.next()) {</p><p>  flag=true;</p><p>

118、<b>  }else {</b></p><p>  flag=false;</p><p><b>  }</b></p><p>  } catch (Exception e) {</p><p>  // TODO Auto-generated catch block</p>

119、<p>  e.printStackTrace();</p><p><b>  }</b></p><p>  return flag;</p><p><b>  }</b></p><p>  public List<Task> getTaskBySno(String

120、sid){</p><p>  List<Task> list=new ArrayList<Task>();</p><p>  Connection conn;</p><p><b>  try {</b></p><p>  conn=getConnection();</p>

121、<p>  String sql="select * from dbo.task where sno=?";</p><p>  PreparedStatement pstatement=conn.prepareStatement(sql);</p><p>  pstatement.setString(1, sid);</p><p&g

122、t;  ResultSet rs=pstatement.executeQuery();</p><p>  while(rs.next()){</p><p>  Task task=new Task();</p><p>  String tno=rs.getString("tno");</p><p>  Strin

123、g sno = rs.getString("sno");</p><p>  String pid= rs.getString("pid");</p><p>  String tname=rs.getString("tname");</p><p>  int tprogress = rs.getInt(

124、"tprogress");</p><p>  int ratio = rs.getInt("ratio");</p><p>  task=new Task(tno,sno,pid,tname,tprogress,ratio);</p><p>  list.add(task);</p><p>&l

125、t;b>  }</b></p><p>  } catch (Exception e) {</p><p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p><p><b>  }</b></p>

126、;<p>  return list;</p><p><b>  }</b></p><p><b>  /**</b></p><p><b>  * 更新任務(wù)進(jìn)度</b></p><p><b>  * </b></p>

127、<p>  * @param task</p><p>  * @return flag</p><p><b>  */</b></p><p>  public boolean updateTask(Task task) {</p><p>  boolean flag = false;</p>

128、<p>  Connection conn=null;</p><p><b>  try {</b></p><p>  conn=getConnection();</p><p>  String sql = "update dbo.task set tno=?,sno=?,pid=?,tname=?,tprogre

129、ss=?,ratio=? where tno=? ";</p><p>  PreparedStatement psmt = conn.prepareStatement(sql);</p><p>  psmt.setString(1, task.getTno());</p><p>  psmt.setString(2,task.getSno());&l

130、t;/p><p>  psmt.setString(3, task.getPid());</p><p>  psmt.setString(4, task.getTname());</p><p>  psmt.setInt(5, task.getTprogress());</p><p>  psmt.setInt(6, task.getRat

131、io());</p><p>  psmt.setString(7, task.getTno());</p><p>  int i = psmt.executeUpdate();</p><p>  if (i == 1) {</p><p>  flag = true;</p><p>  System.out.p

132、rintln("修改成功!?。?quot;);</p><p><b>  }</b></p><p>  } catch (Exception e) {</p><p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();<

133、;/p><p><b>  }</b></p><p>  return flag;</p><p><b>  }</b></p><p><b>  /**</b></p><p><b>  * 分配任務(wù)信息</b></p&

134、gt;<p><b>  * </b></p><p>  * @param task</p><p>  * @return flag</p><p><b>  */</b></p><p>  public boolean addTaskInfo(Task task) {<

135、/p><p>  Connection conn=null;</p><p>  boolean flag = false;</p><p><b>  try {</b></p><p>  conn=getConnection();</p><p>  String sql = "ins

136、ert into dbo.task(tno,sno,pid,tname,tprogress,ratio) values(?,?,?,?,?,?)";</p><p>  PreparedStatement psmt = conn.prepareStatement(sql);</p><p>  psmt.setString(1,task.getTno());</p>

137、<p>  psmt.setString(2, task.getSno());</p><p>  psmt.setString(3,task.getPid());</p><p>  psmt.setString(4, task.getTname());</p><p>  psmt.setInt(5, task.getTprogress());<

138、;/p><p>  psmt.setInt(6, task.getRatio());</p><p>  int i = psmt.executeUpdate();</p><p>  if (i == 1) {</p><p>  flag = true;</p><p>  System.out.println(&qu

139、ot;添加成功?。?!");</p><p><b>  }</b></p><p>  } catch (Exception e) {</p><p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p>&

140、lt;p><b>  }</b></p><p>  return flag;</p><p><b>  }</b></p><p><b>  /**</b></p><p><b>  * 更新任務(wù)進(jìn)度</b></p><p

溫馨提示

  • 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ù)僅提供信息存儲(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)論