

版權(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> 添加新項(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> 任務(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> 增加員工<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> 系統(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> 項(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> 任務(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> 員工信息維護(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> 修改密碼 <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> 退出系統(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> 歡迎使用項(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java-web新聞發(fā)布系統(tǒng)課程設(shè)計(jì)
- java-web網(wǎng)上書店系統(tǒng)課程設(shè)計(jì)
- web課程設(shè)計(jì) 《web網(wǎng)絡(luò)編程技術(shù)》課程設(shè)計(jì)報(bào)告
- 數(shù)控技術(shù)課程設(shè)計(jì)--數(shù)控編程技術(shù)
- 可視化編程技術(shù)課程設(shè)計(jì)(論文)-學(xué)生學(xué)籍管理系統(tǒng)
- 網(wǎng)絡(luò)編程技術(shù)課程研究
- vb_可視化編程技術(shù)課程設(shè)計(jì)--企業(yè)銷售合同管理系統(tǒng)
- 可視化編程技術(shù)課程設(shè)計(jì)-(高速公路收費(fèi)系統(tǒng))
- 《java-web程序設(shè)計(jì)》課程標(biāo)準(zhǔn)
- 《網(wǎng)絡(luò)編程技術(shù)課程設(shè)計(jì)》論文ftp客戶端設(shè)計(jì)與實(shí)現(xiàn)
- 課程設(shè)計(jì)---java web圖書管理系統(tǒng)
- web應(yīng)用技術(shù)課程設(shè)計(jì)(圖書管理系統(tǒng))
- web開發(fā)技術(shù)課程設(shè)計(jì)報(bào)告
- ssm+mysql實(shí)現(xiàn)的java-web酒店管理項(xiàng)目源碼
- web應(yīng)用技術(shù)課程設(shè)計(jì)——在線影評(píng)系統(tǒng)
- 人事管理系統(tǒng)-《面向?qū)ο蟮木幊碳夹g(shù)》課程設(shè)計(jì)任務(wù)書
- java_web_課程設(shè)計(jì)
- 《html網(wǎng)頁(yè)編程技術(shù)綜合課程設(shè)計(jì)》教學(xué)方案-1
- java程序設(shè)計(jì)與開發(fā)技術(shù)課程設(shè)計(jì)
- jsp應(yīng)用課件—web編程技術(shù)
評(píng)論
0/150
提交評(píng)論