java-web編程技術課程設計--項目管理系統(tǒng)_第1頁
已閱讀1頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘 要</b></p><p>  隨著信息技術的發(fā)展,計算機已被廣泛的應用于社會的各個領域,成為推動社會發(fā)展的技術動力。而在計算機應用中,軟件的作用十分突出,軟件已經發(fā)展成為信息技術的核心,主導著信息產品的開發(fā)和信息技術市場的進一步的開拓。</p><p>  項目管理系統(tǒng),就是項目的管理者應用專門管理項目的系統(tǒng)軟件,在有限的資源約束下

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

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

4、;</p><p>  1需 求 分 析1</p><p><b>  1.1問題描述1</b></p><p>  1.2 系統(tǒng)需求1</p><p>  2概 要 設 計2</p><p>  2.1系統(tǒng)總體結構2</p><p>  2.2 管理員信息管理功

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

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

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

8、b>  1需 求 分 析</b></p><p><b>  1.1問題描述</b></p><p>  在網絡飛速發(fā)展的今天,網絡給人們帶來了很多便利,越來越來的管理網絡化?;趥鹘y(tǒng)管理系統(tǒng)許多不方便,公司項目的管理系統(tǒng)希望得到改善,不再局限于傳統(tǒng)項目管理,因此希望經過項目的在線分配后能方便更好的管理與分配,在線項目管理對將每個項目的管理劃分為無數(shù)

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

10、的維護。項目管理主要功能為:(1)新增項目:新增項目編號、名稱、項目進度、負責人、(申請時間)、(審核狀態(tài))(2)刪除項目:對已經完成的項目和停止的項目進行刪除,以免對系統(tǒng)的冗余(3)修改項目:修改項目名稱、修改項目負責人、修改項目進度,對項目進度的更新是依賴于各個任務的進度。人員管理主要功能:(1)新增員工:員工編號、員工名、性別、聯(lián)系方式(2)刪除:刪除沒有任務的員工(3)修改員工:修改指定員工各信息。任務管理的主要功能為:(1)分

11、配任務:根據新添加的任務對其分配,如任務編號、項目名、員工、任務、進度(2)修改任務:對任務的各項信息進行維護,如任務的權值。查詢的主要功能為:對項目信息及分配情況的查詢,能更好的把握項目的進度情況。(1)查詢員工:查詢員工各項信息(2)查詢項目:查詢項目各項信息(3)查詢任務:查詢任務各項信息</p><p>  員工登陸后能夠查詢個人參與的任務以及進度,方便自己對工時的管理,隨著員工進度的更新,整個項目的進度

12、會進行更新,也可以對個人的信息的維護。</p><p><b>  2概 要 設 計</b></p><p><b>  2.1系統(tǒng)總體結構</b></p><p>  圖2.1 系統(tǒng)結構圖</p><p>  2.2 管理員信息管理功能模塊</p><p>  管理員信息功

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

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

15、gt;  表3.3實體T03員工信息表的屬性的清單</p><p>  表3.4實體T04任務表的屬性的清單</p><p><b>  3.2界面設計</b></p><p>  本網站主要頁面為管理員主頁、項目信息界面、任務信息界面、人員管理界面以及個人主頁,分別對應頁面為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"><!-- 將默認字體從宋體換成微軟雅黑(個人比較喜歡微軟雅黑,移動端和桌面端顯示效果比較接近) -->

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>主頁面</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>  * 對選中的標簽激活active狀態(tài),對先前處于active狀態(tài)但之后未被選中的標簽取消active</p><p>  * (實現(xiàn)左側菜單中的標簽點擊后變色的效果)</p><p><b>  */</b></p><p>  $(document).ready(function (

25、) {</p><p>  $('ul.nav > li').click(function (e) {</p><p>  //e.preventDefault();加上這句則導航的<a>標簽會失效</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返回的頁面中含有javascript的辦法:</p><p>  * 把xmlHttp.responseText中的腳本都抽取出來,不管AJAX加載的HTML包含多少個腳本塊,我們對找出來的腳本塊都調用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>  //對整段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;//匹配正則表達式的內容數(shù)組,blocks[1]就是真正的一段腳本內容,因為前面reg定義我們用了括號進行了捕獲分組</p&

30、gt;<p>  if (blocks = htmlBlock[i].match(reg)) </p><p><b>  {</b></p><p>  //清除可能存在的注釋標記,對于注釋結尾-->可以忽略處理,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對象</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 — 當readystate變

36、化時調用后面的方法</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——服務器反饋正常</p><p>  document.getElementById("content").innerHTML=xmlHttp.responseText;//重設頁面中id="content"的div里的內容</p><p>  executeScript(xmlHttp.res

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

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

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

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

42、urn;</b></p><p><b>  } </b></p><p><b>  } </b></p><p><b>  }</b></p><p>  //把請求發(fā)送到服務器上的指定文件(url指向的文件)進行處理</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">項目管理系統(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;添加新項目<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; 任務分配 <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>  <!-- 左側菜單選項========================================= --></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>  <!-- 一級菜單 --></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; 項目信息 <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; 任務維護 <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; 員工信息維護 <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">控制臺<small>&nbsp;&nbsp;&nbsp;歡迎使用項目后臺管理系統(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 公共類設

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

70、cqust.Util</p><p>  該層里僅有一個判斷是否輸入為空的類,代碼如下:</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 實體模型層com.cqust.Bean</p><p>  在該層下有四個類,為Admin.java、Staff.java、Project.java、Task.java分別對應數(shù)據庫內的四個表,例如主要的項目類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ù)據接口層com.cqust.D

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

88、lass taskDao extends BaseDao{</p><p><b>  /**</b></p><p>  * 查詢任務信息分頁顯示</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>  * 獲取任務表記錄分頁的總數(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>  * 通過編號查詢任務信息</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>  //通過編號查詢任務信息</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>  //通過項目編號查詢任務信息</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>  * 更新任務進度</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("修改成功?。?!");</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>  * 分配任務信息</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>  * 更新任務進度</b></p><p

溫馨提示

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

評論

0/150

提交評論