jsp117人事管理系統(jsp+sqlserver)-qkrp_第1頁
jsp117人事管理系統(jsp+sqlserver)-qkrp_第2頁
jsp117人事管理系統(jsp+sqlserver)-qkrp_第3頁
jsp117人事管理系統(jsp+sqlserver)-qkrp_第4頁
jsp117人事管理系統(jsp+sqlserver)-qkrp_第5頁
已閱讀5頁,還剩46頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

PAGE人事管理系統作者姓名指導教師所學專業班級所屬院系學習年限年月至年月二○年月PAGE目錄論文總頁數:44頁1引言 11.1課題背景 11.2本課題研究的意義 11.3本課題的研究思路和方法 11.4本文的主要工作 12開發工具介紹 22.1JSP技術 22.1.1JAVA簡介 22.1.2JSP簡介 22.1.3JavaBeans介紹 32.1.4JDBC驅動程序介紹 32.2Myeclipse介紹 42.3SQLServer2005數據庫 42.4Browser/Server(B/S)結構 53需求分析及設計方案 53.1需求分析 53.2設計方案 53.2.1系統功能 53.2.2系統結構 64具體設計流程及實現 64.1數據庫設計 64.1.1數據庫需求分析及E-R圖 64.1.2數據表具體設計 74.1.3數據字典 104.2部分關鍵編碼實施實現 124.2.1工資管理編碼實現 124.2.2業績管理編碼實現 264.2.3時間設置編碼實現 325系統運行及測試與分析 385.1系統的運行 385.1.1用戶登錄 385.1.2主界面 385.1.3部門管理 395.1.4用戶管理 395.1.5工資管理 405.1.6用戶查詢 405.1.7考勤錄入 415.1.8考勤查詢 415.1.9業績管理 415.1.10業績對比 425.2測試與分析 42結論 42參考文獻 43致謝 44摘要本設計的開發是基于B/S結構,采用JSP程序設計語言及SQLServer2005數據庫進行開發;論文首先闡述了基于B/S模式的浙江江森自控有限公司人事管理系統的開發,并對該系統進行了較詳細的需求分析;然后探討了該系統需要實現的設計方案,該系統主要包括部門管理,工資管理,用戶管理,用戶查詢,幫助設置,考勤錄入,考勤查詢,培訓管理,招聘管理等功能模塊;最后,在測試與分析過程中,該系統表現出了運行穩定、可靠和實用等特性,具有一定的實用價值。關鍵詞:人事系統;工資管理;考勤;數據庫;JSPAbstractThedevelopmentofthisdesignisbasedonB/Sstructure,usingJSPprogramminglanguageandSQLServer2005databasedevelopment;thesisdescribesthedevelopmentoftheinsurancecompanypersonnelsystembasedonB/Smode,andthesysteminmoredetailneedsanalysis;thendiscussestheneedtoimplementthesystemdesign,thesystemincludingdepartmentmanagement,payrollmanagement,usermanagement,userqueries,timesetting,attendanceentry,attendanceinquiries,leavemanagement,performancemanagement,performancecomparisonfunctionmodule;Finally,intheprocessoftestingandanalysis,thesystemshowedastable,reliableandpracticalfeatures,hassomepracticalvalue..Keywords:Personnelsystem;wages;attendance;database;JSP目錄1引言 21.1課題背景 21.2本課題研究的意義 21.3本課題的研究思路和方法 21.4本文的主要工作 22開發工具介紹 42.1JSP技術 42.1.1JAVA簡介 42.1.2JSP簡介 42.1.3JavaBeans介紹 52.1.4JDBC驅動程序介紹 52.2Myeclipse介紹 62.3SQLServer2005數據庫 62.4Browser/Server(B/S)結構 63需求分析及設計方案 83.1需求分析 83.2設計方案 83.2.1系統功能 83.2.2系統結構 84具體設計流程及實現 104.1數據庫設計 104.1.1數據庫需求分析及E-R圖 104.1.2數據表具體設計 104.1.3數據字典 134.2部分關鍵編碼實施實現 154.2.1工資管理編碼實現 154.2.2業績管理編碼實現 294.2.3時間設置編碼實現 355系統運行及測試與分析 415.1系統的運行 415.1.1用戶登錄 415.1.2主界面 415.1.3部門管理 425.1.4用戶管理 425.1.5工資管理 425.1.6考勤錄入 435.1.7考勤查詢 435.2測試與分析 43結論 45參考文獻 46致謝 47第36頁共44頁1引言1.1課題背景我國的計算機應用于企業管理,只是在70年代末期以后才逐漸開展起來的。目前,計算機輔助管理已在我國的各行各業得到了廣泛地應用,但總的來說,計算機在我國管理中的應用,還處于初級階段,盡管近兩年發展較快,但還需要不斷地探索和研究。尤其是計算機輔助人事管理僅是近幾年才在我國得到普及和發展,而在許多發達國家計算機輔助人事管理已十分普及,因此對這方面的研究是必要的,它將推動我國企業的發展和人事管理信息處理的現代化。1.2本課題研究的意義隨著計算機的日益普及和網絡的發展,數據庫的應用范圍越來越廣,數據庫應用的功能也越來越強,因此編寫管理信息系統應用程序也顯得尤為重要,在強調管理,強調信息的現代社會中它變得越來越普及。人事管理是任何企事業單位都需要進行的一項工作,因此,開發制作人事管理系統具有較大的社會現實意義,同時人事管理系統是一切應用系統的典范,它具有一切應用系統的特征,系統結構與現實生活緊密結合,具體直觀,具有典范的數據庫系統的特性。人事管理系統主要用于企業內部員工的檔案、工資、考勤、評價的管理,便于公司領導掌握人員的動向,及時調整人才的分配,同時也減少了手工操作帶來的一些繁瑣與不便,使員工情況的記錄和統計變得十分簡單.這些優點可以極大的提高企業對人事管理的效率.因此,人事管理系統是企事業信息化、智能化、科學化和正規化不可缺少的管理軟件。1.3本課題的研究思路和方法本系統的開發要求采用B/S結構,設計與開發一個功能較完善的基于網絡的社區醫療管理系統。因此,本次畢業設計應首先分析社區醫療管理系統的相關功能,結合本次畢業設計的相關要求寫出需求分析;其次,綜合運用以前所學的相關知識(包括以前所學的一些關于網絡技術、數據庫、編程技術等相關知識),選擇所熟悉的開發工具進行本畢業設計的開發;在設計中以需求分析為基礎,寫出系統開發計劃、實現流程及相關問題的實現方法;同時,在開發設計與實現中,要保存好相關的設計文擋,為后面的畢業論文的寫作準備材料;最后,系統開發完畢后,進行調試和試運行,做好調試和試運行的相關記錄,也為后面的畢業論文的寫作準備材料。1.4本文的主要工作本文主要是對設計與開發一個浙江江森自控有限公司人事管理系統的總結,首先對本系統所基于的B/S結構,采用的JSP編程技術和SQLServer2005數據庫,運用的MyEclipse開發工具等進行詳細的介紹;然后對用戶的需求分析,指出了需要解決的問題,需要實現的功能,如部門管理,工資管理,用戶管理,用戶查詢,幫助設置,考勤錄入,考勤查詢,培訓管理,招聘管理等功能模塊;其次是具體設計流程及實現,詳細介紹了數據庫的設計,編碼的實施;接著是系統測試,通過測試發現了系統的一些問題,排除了的錯誤,發現了一些不足等;最后是對本次設計制作的小結,總結了設計過程中遇到的問題和收獲。2開發工具介紹本系統是采用JSP編程技術和MySQL數據庫,在WindowsXP操作系統環境下,采用Myeclipse開發工具以及Javabeans編寫進行設計與開發完成的基于B/S結構的社區醫療管理系統。2.1JSP技術2.1.1JAVA簡介.Java語言誕生于20世紀90年代的初期,最初是以智能家電的芯片語言出現的。但是很快,人們發現了它有更廣闊的用武之地,由于它適用于Internet環境,引起計算機界的廣泛關注,迅速發展成計算機網絡編程語言。Java語言備受推崇,因其確實可稱得上是新一代編程語言,具有眾多優點,它簡單、面向對象、可移植、與硬件無關、系統強健安全、具有很高的性能,并提供了分布性、多線程、動態性的支持。2.1.2JSP簡介JSP(JavaServerPages)是由Sun公司在java語言上開發出來的一種動態網頁制作技術,JSP規范是Web服務器、應用服務器、交易系統、以及開發工具供應商間廣泛合作的結果,使您可以將網頁中的動態部分和靜態的HTML相分離。⑴將內容的生成和顯示進行分離使用JSP技術,Web頁面開發人員可以使用HTML或者XML標識來設計和格式化最終頁面。使用JSP標識或者小腳本來生成頁面上的動態內容。生成內容的邏輯被封裝在標識和JavaBeans組件中,并且捆綁在小腳本中,所有的腳本在服務器端運行。⑵強調可重用的組件絕大多數JSP頁面信賴于可重用的、跨平臺的組件(JavaBeans或者EnterpriseJavaBeansTM組件)來執行應用程序所要求的更為復雜的處理。開發人員能夠共享和交換執行普通操作的組件,井使得這些組件為更多的使用者或者客戶團體所使用[6]。⑶采用標識簡化頁面開發Web頁面開發人員不會都是熟悉腳本語言的編程人員。JSP技術封裝了許多功能,這些功能是在生成與JSP相關的XML標識的動態內容時所需要的。標準的JSP標識能夠訪問和實例化JavaBeans組件、設置或者檢索組件屬性、下載Applet,以及執行用其他方法更難于編碼和耗時的功能。⑷健壯性與安全性由于JSP頁面的內置腳本語言是基于Java編程語言的,且都被編譯為JavaServlet,它就具有Java技術的所有好處,包括健壯的存儲管理和安全性[7]。⑸良好的移植性作為Java平臺的一部分,JSP擁有Java編程語言“一次編寫,各處運行”的特點。隨著越來越多的供應商將JSP支持添加到他們的產品中,可以使用自己所選擇的服務器和工具,而且更改工具或服務器并不影響當前的使用。⑹企業級的擴展性和性能當與Java2平臺,企業版(J2EE)和EnterpriseJavaBeans技術整合時,JSP頁面將提供企業級的擴展性和性能,這對于虛擬企業中部署基于Web的應用是必需的。2.1.3JavaBeans介紹JavaBeans是一個可以重復使用的軟件組件。實際上JavaBeans是一種Java類,通過封裝屬性和方法成為具有某種功能或者處理某個業務的對象,簡稱beans。JavaBeans是基于Java語言的,具有以下特點:(1)可以實現代碼的重復利用。(2)易編寫,易維護,易使用。(3)可以在任何安裝了Java運行環境的平臺上的使用,而不需要重新編譯。2.1.4JDBC驅動程序介紹從編程的角度出發,有兩個主要的類負責建立與數據庫的連接。第一個類DriverManager是在JDBCAPI中提供的為數不多的實際類。DriverManager負責管理已注冊驅動程序的集合,實質上就是提取使用驅動程序的細節,這樣程序員就不必直接處理它們。第二個類是實際的JDBCDriver類。JDBC驅動程序有四種類型。第一種驅動程序:它們都使用JDBC-ODBC橋,這是作為JDK的一個標準部分包括的。第一種驅動程序通過附加在JDBC-ODBC橋的“開放式數據庫連接性”(OpenDataBaseConnectivity(ODBC))驅動程序來區分。要連接到一個不同的數據源,您只需要使用ODBC管理員注冊(或有效地綁定)一個不同的ODBC數據源到合適的數據源名稱即可。第二種驅動程序也稱為部分Java驅動程序,因為它們直接將JDBCAPI翻譯成具體數據庫的API。對于分布式應用程序,這種需求會產生額外的許可證問題,還可能帶來可怕的潛在代碼分布問題。第三種驅動程序是純Java驅動程序,它將JDBCAPI轉換成獨立于數據庫的協議。JDBC驅動程序并沒有直接和數據庫進行通訊;它和一個中間件服務器通訊,然后這個中間件服務器和數據庫進行通訊。這種額外的中間層次提供了靈活性:可以用相同的代碼訪問不同的數據庫,因為中間件服務器隱藏了Java應用程序的細節。要轉到不同的數據庫,您只需在中間件服務器上改變參數。第四種驅動程序是純Java驅動程序,它直接與數據庫進行通訊。很多程序員認為這是最好的驅動程序,因為它通常提供了最佳的性能,并允許開發者利用特定數據庫的功能。當然,這種緊密耦合會影響靈活性,特別是如果您需要改變應用程序中的底層數據庫時。這種驅動程序通常用于applet和其它高度分布的應用程序。2.2Myeclipse介紹MyEclipse企業級工作平臺(MyEclipseEnterpriseWorkbench,簡稱MyEclipse)是對EclipseIDE的擴展,利用它我們可以在數據庫和JavaEE的開發、發布以及應用程序服務器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發環境,包括了完備的編碼、調試、測試和發布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。MyEclipse是一個十分優秀的用于開發Java,J2EE的Eclipse插件集合,MyEclipse的功能非常強大,支持也十分廣泛,尤其是對各種開源產品的支持十分不錯。MyEclipse目前支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC數據庫鏈接工具等多項功能。可以說MyEclipse幾乎囊括了目前所有主流開源產品的專屬eclipse開發工具。2.3SQLServer2005數據庫利用JSP結合數據庫來開發網站使得網站更具有交互性,因為沒有數據庫支持的靜態網頁已經無法滿足人們對于網絡的需求了。數據庫在各行各業中是必不可少的,下面就來介紹數據庫方面的相關知識。SQL是英文StructuredQueryLanguage的縮寫,意思為結構化查詢語言。它的主要功能就是同各種數據庫建立聯系,進行溝通。按照ANSI(美國國家標準協會)的規定,SQL被作為關系型數據庫管理系統的標準語言。SQL語句可以用來各種各樣的操作,例如更新數據庫中的數據,從數據庫中提取數據等。MicrosoftSQLServer(基于結構化查詢語言的數據庫服務器)是基于客戶/服務器結構的數據庫管理系統。用戶通過使用客戶系統從服務器檢索信息并進行本地操作,服務器關注數據庫進程,而客戶則關注信息的表示。此數據庫管理系統能夠存儲大容量的數據,能夠保證數據的安全性、維護數據的完整性,還具有自動高效的機制以及運行分布式處理等。2.4Browser/Server(B/S)結構B/S(Browser/Server)結構即瀏覽器和服務器結構。它是隨著Internet技術的興起,對C/S結構的一種變化或者改進的結構。在這種結構下,用戶工作界面是通過WWW瀏覽器來實現,極少部分事務邏輯在前端(Browser)實現,但是主要事務邏輯在服務器端(Server)實現,形成所謂三層3-tier結構。這樣就大大簡化了客戶端電腦載荷,減輕了系統維護與升級的成本和工作量,降低了用戶的總體成本(TCO)。以目前的技術看,局域網建立B/S結構的網絡應用,并通過Internet/Intranet模式下數據庫應用,相對易于把握、成本也是較低的。它是一次性到位的開發,能實現不同的人員,從不同的地點,以不同的接入方式(比如LAN,WAN,Internet等)訪問和操作共同的數據庫;它能有效地保護數據平臺和管理訪問權限,服務器數據庫也很安全。特別是在JAVA這樣的跨平臺語言出現之后,B/S架構管理軟件更是方便、快捷、高效。3需求分析及設計方案3.1需求分析需求分析是軟件定義的最后一個階段,它的基本任務是回答“系統必須做什么“這個問題。需求分析的任務不是確定系統怎樣完成他的工作,而僅僅是確定系統完成哪些工作,也就是對目標系統提出完整、準確、清晰、具體的要求。可行性研究階段產生的文檔,特別是數據流成圖,是需求分析的出發點。數據流成圖中已經劃分出系統必須完成的許多基本功能,系統分析員將仔細研究這些功能并進一步將它們具體化。需求分析的結果是系統開發的基礎,關系到工程的成敗和軟件產品的質量。因此,必須用行之有效的方法對軟件需求進行嚴格的審查驗證。3.2設計方案根據前面章節需求分析的情況,結合本系統所要實現的功能,具體設計方案如下。3.2.1系統功能通過對用戶需求的分析,浙江江森自控有限公司人事管理系統網站應包括以下的主要功能:(1)部門管理(2)工資管理(3)用戶管理(4)用戶查詢(5)幫助設置(6)考勤錄入(7)考勤查詢(8)培訓管理(9)招聘管理3.2.2系統結構整個系統主要分為部門管理,工資管理,用戶管理,用戶查詢,幫助設置,考勤錄入,考勤查詢,培訓管理,招聘管理,員工管理等功能模塊,如圖1所示。浙江江森自控有限公司人事管理系統浙江江森自控有限公司人事管理系統部門管理用戶查詢幫助設置考勤錄入考勤查詢培訓管理招聘管理員工對比工資管理用戶管理圖1系統功能圖4具體設計流程及實現4.1數據庫設計4.1.1數據庫需求分析及E-R圖根據以上的系統功能分析,可以得到E-R圖:部門和員工E-R圖:部門I部門IdN1部門員工組成員工id姓名電話部門names圖4-1部門和員工E-R圖員工和工資E-R圖:111員工員工id姓名電話生日卡號間對應工資應發合計實發圖4-2員工和工資E-R圖4.1.2數據表具體設計(1)部門表:記錄部門基本信息,如表1所示。表1部門表(bm)序號列名數據類型長度是否必填1IdIntNotnull2Nonvarchar50null3Namesnvarchar50null4JlidIntnull5Telnvarchar50null(2)工資信息表:記錄工資信息,如表2所示。表2工資信息表(gz)序號列名數據類型長度是否必填1IdIntNotnull2uidIntnull3yfnvarchar50null4jbnvarchar50null5jbfnvarchar50null6glnvarchar50null7qqnvarchar50null8jlnvarchar50null9zwjtnvarchar50null10qjnvarchar50null11totlesnvarchar50null(3)考勤表:記錄考勤信息,如表3所示。表3考勤表(kq)序號列名數據類型長度是否必填1IdIntNotnull2Statenvarchar50null3Uidintnull4Timesnvarchar50null5unamenvarchar50null(4)請假表:記錄請假信息,如表4所示。表4請假表(qj)序號列名數據類型長度是否必填1IdIntNotnull2Btimenvarchar50null3Etimenvarchar50null4Statenvarchar50null5Yynvarchar50null6myidintnull(5)時間表:記錄時間信息,如表5所示。表5時間表(time)序號列名數據類型長度是否必填1IdIntNotnull2Namenvarchar50null3abeginnvarchar50null4aendnvarchar50null5pbeginnvarchar50null6pendnvarchar50null(6)員工表:記錄員工信息,如表6所示。表6員工表(users)序號列名數據類型長度是否必填1IdIntNotnull2nonvarchar50null3Sexnvarchar50null4cardnonvarchar50null5brithdaydatetimenull6agenvarchar50null7minzunvarchar50null8hynvarchar50null9zznvarchar50null10rdtimedatetimenull11jgnvarchar50null12telnvarchar50null13usernamenvarchar50null14passwordnvarchar50null15phonenvarchar50null16bmidintnull17islivenvarchar50null18realnamenvarchar50null19typenvarchar50null(7)業績表:記錄業績信息,如表7所示。表7業績表(yj)序號列名數據類型長度是否必填1IdIntNotnull2uidIntnull3daysDatetimenull4yjFloatnull5descsnvarchar50null4.1.3數據字典(1)數據項字段名稱數據類型長度說明IdIntNotnullNonvarchar50nullNamesnvarchar50nullJlidIntnullTelnvarchar50nullIdIntNotnulluidIntnullyfnvarchar50nulljbnvarchar50nulljbfnvarchar50nullglnvarchar50nullqqnvarchar50nulljlnvarchar50nullzwjtnvarchar50nullqjnvarchar50nulltotlesnvarchar50nullIdIntNotnullStatenvarchar50nullUidintnullTimesnvarchar50nullunamenvarchar50nullIdIntNotnullBtimenvarchar50nullEtimenvarchar50nullStatenvarchar50nullYynvarchar50nullmyidintnullIdIntNotnullNamenvarchar50nullabeginnvarchar50nullaendnvarchar50nullpbeginnvarchar50nullpendnvarchar50nullIdIntNotnullnonvarchar50nullSexnvarchar50nullcardnonvarchar50nullbrithdaydatetimenullagenvarchar50nullminzunvarchar50nullhynvarchar50nullzznvarchar50nullrdtimedatetimenulljgnvarchar50nulltelnvarchar50nullusernamenvarchar50nullpasswordnvarchar50nullphonenvarchar50nullbmidintnullislivenvarchar50nullrealnamenvarchar50nulltypenvarchar50nullIdIntNotnulluidIntnulldaysDatetimenullyjFloatnulldescsnvarchar50null4.2部分關鍵編碼實施實現4.2.1工資管理編碼實現packagecom.checkwork.servlet;importjava.io.IOException;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.text.SimpleDateFormat;importjava.util.ArrayList;importjava.util.Date;importjava.util.List;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importcom.checkwork.bean.Gz;importcom.checkwork.bean.Kq;importcom.checkwork.bean.User;importcom.checkwork.util.DataBaseHelp;importcom.checkwork.util.Page;/***ServletimplementationclassGzServlet*/publicclassGzServletextendsHttpServlet{ privatestaticfinallongserialVersionUID=1L;/***@seeHttpServlet#HttpServlet()*/publicGzServlet(){super();//TODOAuto-generatedconstructorstub} /** *@seeHttpServlet#doGet(HttpServletRequestrequest,HttpServletResponseresponse) */protectedvoiddoGet(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ //TODOAuto-generatedmethodstub this.doPost(request,response); } /** *@seeHttpServlet#doPost(HttpServletRequestrequest,HttpServletResponse *response) */ protectedvoiddoPost(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ //TODOAuto-generatedmethodstub request.setCharacterEncoding("UTF-8"); Stringmode=request.getParameter("mode"); StringpageNoStr=request.getParameter("pageNoStr")==null?"1" :request.getParameter("pageNoStr"); intm=0; intn=2;//每頁大小 intpageNo=Integer.parseInt(pageNoStr); if(pageNo==1){//首頁 }else{ m=(pageNo-1)*n; } DataBaseHelputil=newDataBaseHelp(); Connectionconn=util.openConnection(); try{ if(mode!=null&&mode.equals("list")){ this.list(n,m,conn,pageNo,request,response); } if(mode!=null&&mode.equals("add")){ Stringyf=request.getParameter("yf"); Stringuid=request.getParameter("uid"); Stringjb=request.getParameter("jb"); Stringjbf=request.getParameter("jbf"); Stringgl=request.getParameter("gl"); Stringqq=request.getParameter("qq"); Stringjl=request.getParameter("jl"); Stringzwjt=request.getParameter("zwjt"); Stringqj=request.getParameter("qj"); Stringtotles=Double.parseDouble(jb)+Double.parseDouble(jbf)+Double.parseDouble(gl)+Double.parseDouble(qq)+Double.parseDouble(jl) +Double.parseDouble(zwjt)-Double.parseDouble(qj)+""; StringsqlAdd="INSERTINTO[hrmana].[dbo].[gz]([yf],[uid],[jb],[jbf],[gl]"+",[qq],[jl],[zwjt],[qj],[totles])values('" +yf+"','"+uid+"','"+jb+"','"+jbf+"','"+gl+"','"+qq+"','"+jl+"','"+zwjt+"','"+qj+"','"+totles+"')"; System.out.println("====="+sqlAdd); Statementstmt=conn.createStatement(); stmt.executeUpdate(sqlAdd); this.list(n,m,conn,pageNo,request,response); } if(mode!=null&&mode.equals("modifyBefore")){ String[]selectFlag=request.getParameterValues("selectFlag"); Stringsql="select*fromuserswhereid="+selectFlag[0]; PreparedStatementpstmt=conn.prepareStatement(sql); ResultSetrs=pstmt.executeQuery(); Userbean=newUser(); while(rs.next()){ bean.setId(rs.getInt("id")); bean.setPassword(rs.getString("password")); bean.setRealname(rs.getString("realname")); bean.setTel(rs.getString("tel")); bean.setType(rs.getString("type")); bean.setUsername(rs.getString("username")); bean.setSex(rs.getString("sex")); bean.setMinzu(rs.getString("minzu")); bean.setAge(rs.getString("age")); bean.setBmid(rs.getInt("bmid")); bean.setBriday(rs.getDate("brithday")); bean.setCardno(rs.getString("cardno")); bean.setHy(rs.getString("hy")); bean.setIslive(rs.getString("islive")); bean.setJg(rs.getString("jg")); bean.setMinzu(rs.getString("minzu")); bean.setNo(rs.getString("no")); bean.setPhone(rs.getString("phone")); bean.setRdtime(rs.getDate("rdtime")); bean.setZz(rs.getString("zz")); break; } request.setAttribute("bean",bean); request.getRequestDispatcher("tab/userModify.jsp").forward( request,response); } if(mode!=null&&mode.equals("more")){ String[]selectFlag=request.getParameterValues("selectFlag"); Stringsql="select*fromuserswhereid="+selectFlag[0]; PreparedStatementpstmt=conn.prepareStatement(sql); ResultSetrs=pstmt.executeQuery(); Userbean=newUser(); while(rs.next()){ bean.setId(rs.getInt("id")); bean.setPassword(rs.getString("password")); bean.setRealname(rs.getString("realname")); bean.setTel(rs.getString("tel")); bean.setType(rs.getString("type")); bean.setUsername(rs.getString("username")); bean.setSex(rs.getString("sex")); bean.setMinzu(rs.getString("minzu")); bean.setAge(rs.getString("age")); bean.setBmid(rs.getInt("bmid")); bean.setBriday(rs.getDate("brithday")); bean.setCardno(rs.getString("cardno")); bean.setHy(rs.getString("hy")); bean.setIslive(rs.getString("islive")); bean.setJg(rs.getString("jg")); bean.setMinzu(rs.getString("minzu")); bean.setNo(rs.getString("no")); bean.setPhone(rs.getString("phone")); bean.setRdtime(rs.getDate("rdtime")); bean.setZz(rs.getString("zz")); break; } request.setAttribute("bean",bean); request.getRequestDispatcher("tab/userMore.jsp").forward( request,response); } if(mode!=null&&mode.equals("modify")){ Stringid=request.getParameter("id"); Stringtype=request.getParameter("type"); Stringpassword=request.getParameter("password"); Stringphone=request.getParameter("phone"); Stringtel=request.getParameter("tel"); Stringbm=request.getParameter("bm"); Stringage=request.getParameter("age"); Stringhy=request.getParameter("hy"); Stringzz=request.getParameter("zz"); Stringjg=request.getParameter("jg"); Stringsqlmodify="updateuserssetpassword='"+password+"',type='"+type+"',phone='"+phone +"',tel='"+tel+"',bmid="+bm+",age='"+age+"',hy='"+hy +"',zz='"+zz+"',jg='"+jg +"'whereid="+id; Statementstmt=conn.createStatement(); stmt.executeUpdate(sqlmodify); this.list(n,m,conn,pageNo,request,response); } if(mode!=null&&mode.equals("deletes")){ String[]selectFlag=request.getParameterValues("selectFlag"); for(inti=0;i<selectFlag.length;i++){ Stringsql="deletefromgzwhereid="+selectFlag[i]; Statementstmt=conn.createStatement(); stmt.executeUpdate(sql); } this.list(n,m,conn,pageNo,request,response); } if(mode!=null&&mode.equals("kqlist")){ Stringdate=request.getParameter("date"); Stringuname=request.getParameter("uname"); Stringstate=request.getParameter("state"); System.out.println("date"+date); if(date!=null&&!date.equals("")){//有日期 Stringsql="selectcount(*)ascfromkqwhere1=1andtimes='"+date+"'"; PreparedStatementpstmt1=conn.prepareStatement(sql); ResultSetrs=pstmt1.executeQuery(); rs.next(); if(rs.getInt("c")!=0){//有數據 System.out.println("((((((((((((((((((((((((((((("); }else{//沒有新增數據 Stringsql2="select*fromusers"; PreparedStatementpstmt2=conn.prepareStatement(sql2); ResultSetrs2=pstmt2.executeQuery(); while(rs2.next()){ StringsqlAdd="insertintokq(uid,uname,times,state)values(" +rs2.getInt("id")+",'"+rs2.getString("username")+"','"+date+"','未缺勤')"; System.out.println("##########"+sqlAdd); Statementstmt=conn.createStatement(); stmt.executeUpdate(sqlAdd); } } }else{ Datedate2=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd"); StringstrDate2=formatter.format(date2); Stringsql="selectcount(*)ascfromkqwhere1=1andtimes='"+strDate2+"'"; PreparedStatementpstmt1=conn.prepareStatement(sql); ResultSetrs=pstmt1.executeQuery(); rs.next(); if(rs.getInt("c")!=0){//有數據 }else{//沒有新增數據 Stringsql2="select*fromusers"; PreparedStatementpstmt2=conn.prepareStatement(sql2); ResultSetrs2=pstmt2.executeQuery(); while(rs2.next()){ StringsqlAdd="insertintokq(uid,uname,times,state)values(" +rs2.getInt("id")+",'"+rs2.getString("username")+"','"+strDate2+"','未缺勤')"; System.out.println("sqlAddsqlAdd"+sqlAdd); Statementstmt=conn.createStatement(); stmt.executeUpdate(sqlAdd); } } } Stringsql="SELECTTOP" +n +"*FROM(" +"SELECTROW_NUMBER()OVER(ORDERBYid)ASRowNumber,*FROMkqwhere1=1"; Stringsql2="selectcount(*)fromkqwhere1=1"; if(date!=null&&!date.equals("")){ sql+="andtimes='"+date+"'"; sql2+="andtimes='"+date+"'"; }else{ Datedate2=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd"); StringstrDate2=formatter.format(date2); sql+="andtimes='"+strDate2+"'"; sql2+="andtimes='"+strDate2+"'"; } if(uname!=null&&!uname.equals("")){ sql+="andunamelike'%"+uname+"%'"; sql2+="andunamelike'%"+uname+"%'"; } if(state!=null&&!state.equals("")){ if(state.equals("全部")){ }else{ sql+="andstate='"+state+"'"; sql2+="andstate='"+state+"'"; } } sql+=")AWHERERowNumber>"+m; PreparedStatementpstmt1=conn.prepareStatement(sql); PreparedStatementpstmt2=conn.prepareStatement(sql2); ResultSetrs=pstmt1.executeQuery(); ResultSetrs2=pstmt2.executeQuery(); rs2.next(); inttotle=rs2.getInt(1); inttotlePage=totle/n; inttotlePageY=totle%n; if(totlePageY!=0){ totlePage=totlePage+1; } List<Kq>list=newArrayList<Kq>(); while(rs.next()){ Kqbean=newKq(); bean.setId(rs.getInt("id")); bean.setUid(rs.getInt("uid")); bean.setUname(rs.getString("uname")); bean.setState(rs.getString("state")); bean.setTimes(rs.getString("times")); list.add(bean); } Pagepage=newPage(); page.setPageNo(pageNo); page.setTotlePage(totlePage); page.setTotle(totle); page.setList(list); request.setAttribute("page",page); request.getRequestDispatcher("tab/kqList.jsp").forward( request,response); } if(mode!=null&&mode.equals("kqsz")){ Stringid=request.getParameter("id"); Stringstate=request.getParameter("state"); Stringsqlmodify="updatekqsetstate='"+state +"'whereid="+id; Statementstmt=conn.createStatement(); stmt.executeUpdate(sqlmodify); request.getRequestDispatcher("UserServlet?mode=kqlist").forward( request,response); } if(mode!=null&&mode.equals("ukqsearch")){ Stringdate=request.getParameter("date"); Stringstate=request.getParameter("state"); HttpSessionsession=request.getSession(); Stringuid=session.getAttribute("id").toString(); Stringsql="SELECTTOP" +n +"*FROM(" +"SELECTROW_NUMBER()OVER(ORDERBYid)ASRowNumber,*FROMkqwhere1=1anduid="+uid; Stringsql2="selectcount(*)fromkqwhere1=1anduid="+uid; if(date!=null&&!date.equals("")){ sql+="andtimes='"+date+"'"; sql2+="andtimes='"+date+"'"; }else{ Datedate2=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd"); StringstrDate2=formatter.format(date2); sql+="andtimes='"+strDate2+"'"; sql2+="andtimes='"+strDate2+"'"; } if(state!=null&&!state.equals("")){ if(state.equals("全部")){ }else{ sql+="andstate='"+state+"'"; sql2+="andstate='"+state+"'"; } } sql+=")AWHERERowNumber>"+m; PreparedStatementpstmt1=conn.prepareStatement(sql); PreparedStatementpstmt2=conn.prepareStatement(sql2); ResultSetrs=pstmt1.executeQuery(); ResultSetrs2=pstmt2.executeQuery(); rs2.next(); inttotle=rs2.getInt(1); inttotlePage=totle/n; inttotlePageY=totle%n; if(totlePageY!=0){ totlePage=totlePage+1; } List<Kq>list=newArrayList<Kq>(); while(rs.next()){ Kqbean=newKq(); bean.setId(rs.getInt("id")); bean.setUid(rs.getInt("uid")); bean.setUname(rs.getString("uname")); bean.setState(rs.getString("state")); bean.setTimes(rs.getString("times")); list.add(bean); } Pagepage=newPage(); page.setPageNo(pageNo); page.setTotlePage(totlePage); page.setTotle(totle); page.setList(list); request.setAttribute("page",page); request.getRequestDispatcher("tab/kqSearchu.jsp").forward( request,response); } if(mode!=null&&mode.equals("kqsearch")){ Stringdate=request.getParameter("date"); Stringuname=request.getParameter("uname"); Stringstate=request.getParameter("state"); if(date!=null&&!date.equals("")){//有日期 Stringsql="selectcount(*)fromkqwhere1=1andtimes='"+date+"'"; PreparedStatementpstmt1=conn.prepareStatement(sql); ResultSetrs=pstmt1.executeQuery(); if(rs.next()){//有數據 }else{//沒有新增數據 Stringsql2="select*fromusers"; PreparedStatementpstmt2=conn.prepareStatement(sql2); ResultSetrs2=pstmt2.executeQuery(); while(rs2.next()){ StringsqlAdd="insertintokq(uid,uname,times,state)values(" +rs2.getInt("id")+"','"+rs2.getString("username")+"',"+date+",'未缺勤')"; Statementstmt=conn.createStatement(); stmt.executeUpdate(sqlAdd); } } }else{ Datedate2=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd"); StringstrDate2=formatter.format(date2); Stringsql="selectcount(*)ascfromkqwhere1=1andtimes='"+strDate2+"'"; PreparedStatementpstmt1=conn.prepareStatement(sql); ResultSetrs=pstmt1.executeQuery(); rs.next(); if(rs.getInt("c")!=0){//有數據 }else{//沒有新增數據 Stringsql2="select*fromusers"; PreparedStatementpstmt2=conn.prepareStatement(sql2); ResultSetrs2=pstmt2.executeQuery(); while(rs2.next()){ StringsqlAdd="insertintokq(uid,uname,times,state)values(" +rs2.getInt("id")+",'"+rs2.getString("username")+"','"+strDate2+"','未缺勤')"; System.out.println("sqlAddsqlAdd"+sqlAdd); Statementstmt=conn.createStatement(); stmt.executeUpdate(sqlAdd); } } } Stringsql="SELECTTOP" +n +"*FROM(" +"SELECTROW_NUMBER()OVER(ORDERBYid)ASRowNumber,*FROMkqwhere1=1"; Stringsql2="selectcount(*)fromkqwhere1=1"; if(date!=null&&!date.equals("")){ sql+="andtimes='"+date+"'"; sql2+="andtimes='"+date+"'"; }else{ Datedate2=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd"); StringstrDate2=formatter.format(date2); sql+="andtimes='"+strDate2+"'"; sql2+="andtimes='"+strDate2+"'"; } if(uname!=null&&!uname.equals("")){ sql+="andunamelike'%"+uname+"%'"; sql2+="andunamelike'%"+uname+"%'"; } if(state!=null&&!state.equals("")){ if(state.equals("全部")){ }else{ sql+="andstate='"+state+"'"; sql2+="andstate='"+state+"'"; } } sql+=")AWHERERowNumber>"+m; PreparedStatementpstmt1=conn.prepareStatement(sql); PreparedStatementpstmt2=conn.prepareStatement(sql2); ResultSetrs=pstmt1.executeQuery(); ResultSetrs2=pstmt2.executeQuery(); rs2.next(); inttotle=rs2.getInt(1); inttotlePage=totle/n; inttotlePageY=totle%n; if(totlePageY!=0){ totlePage=totlePage+1; } List<Kq>list=newArrayList<Kq>(); while(rs.next()){ Kqbean=newKq(); bean.setId(rs.getInt("id")); bean.setUid(rs.getInt("uid")); bean.setUname(rs.getString("uname")); bean.setState(rs.getString("state")); bean.setTimes(rs.getString("times")); list.add(bean); } Pagepage=newPage(); page.setPageNo(pageNo); page.setTotlePage(totlePage); page.setTotle(totle); page.setList(list); request.set

溫馨提示

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

評論

0/150

提交評論