(打印)論文模板-教師信息管理系統(tǒng)設計_第1頁
(打印)論文模板-教師信息管理系統(tǒng)設計_第2頁
(打印)論文模板-教師信息管理系統(tǒng)設計_第3頁
(打印)論文模板-教師信息管理系統(tǒng)設計_第4頁
(打印)論文模板-教師信息管理系統(tǒng)設計_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

目錄TOC\o"1-2"\h\z\u第1章概述11.1系統(tǒng)目的和意義11.2系統(tǒng)開發(fā)環(huán)境11.3系統(tǒng)開發(fā)模式及基本功能1第2章系統(tǒng)設計32.1系統(tǒng)的模塊劃分32.2數(shù)據(jù)庫設計4第3章系統(tǒng)的詳細設計及實現(xiàn)63.1數(shù)據(jù)庫底層訪問類63.2登錄模塊83.3后臺管理系統(tǒng)首頁面導航103.4教師信息管理113.5論著信息管理203.6科研項目信息管理283.7前臺瀏覽模塊35結論43參考文獻44第1章概述1.1系統(tǒng)目的和意義教師信息管理系統(tǒng)是一所院校在各種信息管理中的一部分,對于學校管理者來說是很重要的,所以所設計的系統(tǒng)應該能為管理者提供教師的基本信息管理手段和一些方便的查詢方式。本次課程設計的題目是“基于MVC模式的教師信息管理系統(tǒng)”的設計與實現(xiàn),該設計是對本學期前八周所學的JSP程序設計課程的鞏固和深入應用,同時結合Java語言、JSP技術進行Web程序設計,利用前面學過的知識和上網(wǎng)學習來解決實際問題,鍛煉解決問題的能力和動手編程的能力。同時使用目前企業(yè)實際開發(fā)中比較成熟的MVC模式進行系統(tǒng)的整體架構設計,有效分離模塊、功能之間的代碼耦合關系,并逐步理解軟件開發(fā)步驟和軟件工程思想[1]。1.2系統(tǒng)開發(fā)環(huán)境本系統(tǒng)采用Browser/Server體系結構系統(tǒng)開發(fā)環(huán)境開發(fā)平臺:MyEclipseGA開發(fā)語言:JSP、Java數(shù)據(jù)庫:MicrosoftSQLServer2005系統(tǒng)運行環(huán)境客戶端:瀏覽器:IE6.0服務器端:數(shù)據(jù)庫:MicrosoftSQLServer2005應用程序系統(tǒng)1.3系統(tǒng)開發(fā)模式及基本功能本系統(tǒng)是基于MVC模式設計和開發(fā)的,MVC模式包括模型(Model)JavaBean代表應用程序和業(yè)務邏輯。視圖(View)JSP提供可交互的客戶界面,向客戶顯示模型數(shù)據(jù)。控制器(Controller)Servlet根據(jù)客戶的請求來操縱模型,并把結果經(jīng)由視圖展現(xiàn)給客戶[2]。MVC優(yōu)點:代碼的重用性,有利于開發(fā)的分工各司其職、互不干涉。MVC編程思路:Servlet接受客戶端請求,并調用業(yè)務類的方法進行數(shù)據(jù)處理,Servlet根據(jù)數(shù)據(jù)處理的結果,控制下一個顯示的HTML或者JSP頁面。基于MVC模式的教師信息管理系統(tǒng)主要實現(xiàn)前臺和后臺兩部分功能設計,其中前臺主要實現(xiàn)教師登錄的瀏覽和查詢功能,其中,主要是全部教師信息的分頁瀏覽,全部教師論著的分頁瀏覽,全部科研項目的分頁瀏覽。后臺主要實現(xiàn)管理員登錄后的添加、刪除、修改、查詢和批量刪除功能,其中,主要是教師基本信息的添加、刪除、修改、批量刪除以及按編號和教師姓名的多條件查詢和瀏覽,其次論著信息的添加、刪除、修改、批量刪除以及按編號和教師姓名的多條件查詢和瀏覽,最后是科研項目信息的添加、刪除、修改、批量刪除以及按編號和教師姓名的多條件查詢和瀏覽。第2章系統(tǒng)設計2.1系統(tǒng)的模塊劃分教師信息管理系統(tǒng)是一種通常由管理員管理、維護,可以讓教師查詢、瀏覽的網(wǎng)站。教師的信息通常教師工號,以正序方式由小到大排列展示出來。經(jīng)過需求分析,教師信息管理系統(tǒng)主要包括以下幾個功能模塊:1、登錄模塊模塊功能詳細介紹:教師和系統(tǒng)管理員進行登錄操作,擁有不同的權限和功能。2、教師信息管理模塊模塊功能詳細介紹:對教師信息進行增刪改查操作。3、論著信息管理模塊模塊功能詳細介紹:對教師論著信息進行管理。4、科研項目管理模塊模塊功能詳細介紹:對教師的科研項目進行管理。系統(tǒng)功能模塊圖如下圖2-1所示:教師信息管理系統(tǒng)教師信息管理系統(tǒng)用戶登錄管理教師信息管理論著信息管理科研項目管理教師登錄管理員登錄論著信息維護論著信息查詢項目信息維護項目信息查詢教師信息查詢教師信息維護圖2-1系統(tǒng)功能模塊圖2.2數(shù)據(jù)庫設計數(shù)據(jù)庫管理系統(tǒng)是允許用戶在計算機上建立、使用和維護數(shù)據(jù)庫,增加、修改、刪除、排序和檢索數(shù)據(jù)庫中的數(shù)據(jù),并使用數(shù)據(jù)庫中的數(shù)據(jù)創(chuàng)建表格和報表的軟件系統(tǒng)。它可使多個應用程序和用戶用不同的方法在同時或不同時刻去建立,修改和詢問數(shù)據(jù)庫。數(shù)據(jù)庫的設計是整個系統(tǒng)成敗的一個重要環(huán)節(jié)。合理的數(shù)據(jù)庫設計能夠給系統(tǒng)帶來很好的效率。而且能夠使得各個功能模塊的設計變得非常簡單而且模塊間的關系特別明確。本系統(tǒng)的數(shù)據(jù)庫是在SQLServer2005中創(chuàng)建的[3]。根據(jù)前面的分析,教師信息管理系統(tǒng)數(shù)據(jù)庫共包含4個表,包括用戶信息表(T_user)、教師信息表(T_teacher)、論著信息表(T_lunzhu)、科研項目信息表(T_keyan)。用戶信息表表2-1所示是用戶信息表結構,用于記錄用戶基本信息,包括賬號、密碼、用戶類型。表2-1用戶信息表列名說明數(shù)據(jù)類型約束id用戶賬號nvarchar(20)主鍵psw用戶密碼nvarchar(20)非空userType用戶類型nvarchar(10) 非空教師信息表表2-2是教師信息表結構,用于記錄教師信息,包括教師基本信息和院系信息等。表2-2教師信息表列名說明數(shù)據(jù)類型約束id教師工號nvarchar(20)主鍵name教師名nvarchar(20)非空password密碼nvarchar(20)非空gender性別nvarchar(20)非空department所在院系nvarchar(20)jurisdiction權限nvarchar(20)論著信息表表2-3是論著信息表結構,用于記錄教師論著信息,包括論著編號、論著書名、出版社等。表2-3論著信息表列名說明數(shù)據(jù)類型約束id論著編號nvarchar(20)主鍵name論著書名nvarchar(20)非空press出版社nvarchar(20)Tid教師編號nvarchar(20)科研項目信息表表2-4是科研項目信息表結構,用于記錄教師科研項目信息,包括項目編號、項目名稱等。表2-4科研項目信息表列名說明數(shù)據(jù)類型約束id項目編號nvarchar(20)主鍵name項目名稱nvarchar(20)非空Tid教師編號nvarchar(20)以上就是教師信息管理系統(tǒng)所需的數(shù)據(jù)表,按照這些表結構設計,在MicrosoftSQLServer2005中創(chuàng)建數(shù)據(jù)庫Teacher,并創(chuàng)建相應的表。第3章系統(tǒng)的詳細設計及實現(xiàn)3.1數(shù)據(jù)庫底層訪問類本系統(tǒng)的設計使用基于Servlet的MVC架構模式,將系統(tǒng)的各個功能的實現(xiàn)過程嚴格的劃分為視圖(View)、控制(Controller)、模型(Model),其中View負責界面的顯示,Controller負責請求的轉發(fā)和響應,Model負責邏輯業(yè)務對象實體和業(yè)務實體。由于本系統(tǒng)是一種信息管理系統(tǒng),在這三層之下,還要建立數(shù)據(jù)庫訪問層,該層完成數(shù)據(jù)庫的連接、SQL語句的具體執(zhí)行等操作。這一層由MVC模式中的Model層里的業(yè)務實體進行調用,從而完成邏輯業(yè)務的信息維護操作。JDBC數(shù)據(jù)庫訪問技術JDBC(JavaDataBaseConnectivity,java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的JavaAPI,可以為多種關系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。系統(tǒng)與數(shù)據(jù)庫的連接需要的準備工作,下載JDBC驅動包,將驅動包復制到TeacherManager\WebRoot\WEB-INF\lib文件夾下。完成導入驅動包[4]。添加DBManager公共類首先創(chuàng)建包nepu.ldz.tools,在該包下創(chuàng)建名為DBManager的類,該類得職責用于提供訪問、操作數(shù)據(jù)庫的公共方法。添加公共類的方法和步驟如下:在工程中的包名上點右鍵,選擇【New】—>【Class】菜單項,將彈出【NewJavaClass】對話框,保留默認的選擇,在Name文本框中輸入DBManager,點擊Finish按鈕。編寫公共方法小節(jié)為項目添加了一個DBManager類,該類用于存放連接、操作數(shù)據(jù)庫的公共方法,本小節(jié)介紹如何編寫這些公共方法。首先為DBManager類聲明幾個公共變量,其中conn為數(shù)據(jù)庫連接對象,rs為結果集對象,stmt用于向數(shù)據(jù)庫發(fā)送要執(zhí)行的SQL語句,路徑uri,用戶名sa,密碼123456。1、數(shù)據(jù)庫連接方法getConnection()先加載數(shù)據(jù)庫連接驅動,然后獲取數(shù)據(jù)庫連接,然后進行判斷,檢查是否獲取數(shù)據(jù)庫連接成功,并且捕獲加載數(shù)據(jù)庫驅動的異常和獲取連接的異常。getConnection方法的關鍵代碼如下:privateConnectiongetConnection(){ try{ //加載數(shù)據(jù)連接驅動rver.jdbc.SQLServerDriver"); //獲取數(shù)據(jù)庫連接 conn=DriverManager.getConnection(uri,user,password); if(conn!=null) System.out.println("數(shù)據(jù)庫連接成功"); }catch(ClassNotFoundExceptione){ System.out.println("數(shù)據(jù)庫驅動加載錯誤"); }catch(SQLExceptione){ System.out.println("獲取連接錯誤"); } returnconn; }2、數(shù)據(jù)庫查詢方法executeQuery()先建立Statement對象,再建立ResultSet(結果集)對象,并執(zhí)行傳參過來的SQL語句,并且捕獲SQL語句執(zhí)行的異常。executeQuery方法的關鍵代碼如下:publicResultSetexecuteQuery(Stringsql){ try{ stmt=conn.createStatement(); rs=stmt.executeQuery(sql); }catch(SQLExceptione){ System.out.println("sqlexecutefailure"); e.printStackTrace(); } returnrs; }3、數(shù)據(jù)庫增刪改的操作方法executeUpdate()先建立Statement對象,再建立ResultSet(結果集)對象,并執(zhí)行傳參過來的SQL語句,并且捕獲SQL語句執(zhí)行的異常。executeUpdate方法的關鍵代碼如下:publicintexecuteUpdate(Stringsql){try{stmt=conn.createStatement();returnstmt.executeUpdate(sql);}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}return0;}3.2登錄模塊登錄是每一個成功項目中不可缺少的模塊,好的登錄模塊可以保證系統(tǒng)的可靠性和安全性。本節(jié)首先嚴格按照MVC架構模式為教師信息管理系統(tǒng)制作了一個簡單的登錄模塊,登錄分為兩個權限登錄,分別是普通教師登錄和管理員登錄,管理員登錄成功后,應當進入該系統(tǒng)的后臺管理系統(tǒng),普通教師登錄成功之后,應當進入該系統(tǒng)的前臺管理系統(tǒng)。因此本節(jié)還詳細介紹了主窗體的設計。按照MVC模式進行構建登錄功能的開發(fā),對該模塊的文件構建說明如下(1)Model層:在nepu.ldz.model包中添加用戶類別的實體Javabean,類名為Usermodel。在nepu.ldz.DAO包中添加業(yè)務Javabean,類名為UserDAO。其中Usermodel類包含3個屬性,分別是ID、密碼和權限,同時在該類中添加屬性的set、get方法,User類的屬性定義部分代碼如下:publicclassUsermodel{ privateStringUid=""; privateStringUpsw=""; privateStringUtype="";……}(2)Controller層:在nepu.ldz.Servlet中添加類UserServlet,該servlet主要負責登錄以及管理員相關操作的流程控制。(3)View層:在Webroot文件夾下添加名為login.jsp的JSP文件。View層構建首先在MyEclipse的項目的WebRoot目錄中建立JSP頁面,在該頁面中編寫表單代碼,其中注意表單的action屬性為該表單信息提交的服務端URL地址,method屬性為提交方式。在這里由于是按照MVC模式,將信息提交給Servlet,因此method必須post。同時為避免復雜的URL的路徑邏輯關系,統(tǒng)一使用絕對路徑。圖3-1登錄界面設計Model層構建在業(yè)務Javabean類UserDAO中建立方法login(),實現(xiàn)過程中借助DBManager數(shù)據(jù)庫底層操作類,實現(xiàn)用戶登錄的判斷。該方法需要接收由servlet傳遞過來3個參數(shù),一個是用戶名name,另一個是密碼password,最后是權限state,調用DBManger數(shù)據(jù)庫底層操作類的executeQuery()方法實現(xiàn)sql查詢,sql語句如下:Stringsql="select*fromT_userwhereid='"+name+"'andpsw='"+password+"'anduserType='"+state+"'";實例化DBManager,調用executeQuery()方法,對數(shù)據(jù)庫中的信息進行查詢,代碼如下:DBManagerdb=newDBManager(); ResultSetrs=db.executeQuery(sql);判斷是否查詢出結果,如果rs.next是空,則沒有此權限此人信息,如果rs.next有結果則t=1,傳給servlet使其獲得結果,并知道此權限此人信息,代碼如下:if(rs.next())return1; returnt;Controller層構建在UserServlet添加方法Login(),在該方法中完成登錄的邏輯判斷。首先需要通過方法request.getParameter()來接收由login.jsp頁面?zhèn)鬟f過來的參數(shù)編號(name)、密碼(password)和權限(state),在進行必要的參數(shù)轉碼或合法性判定后調用Model層的業(yè)務javaBeanUserDAO的登錄方法實現(xiàn)登錄判定,登錄成功后需要注意將用戶名用session進行存儲,這樣,在用戶多次請求和響應之后都可以由session中取出用戶名展示或判斷用戶是否登錄。最后,在servlet中使用response.sendRedirect()方法跳轉到管理后臺的首頁面。UserServelt中的Login()方法關鍵代碼如下: Stringname=newString(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312"); Stringpassword=request.getParameter("password"); Stringstate=newString(request.getParameter("state").getBytes("ISO-8859-1"),"GB2312"); if(state.equals("1")){state="普通教師";} else{state="管理員";} UserDAOuserDAO=newUserDAO(); intt=userDAO.login(name,password,state); Sessionsession=request.getSession(); session.setAttribute("name",name); if(t==1){ session.setAttribute("username",name); if(state.equals("普通教師")){response.sendRedirect("front/FrontIndex.jsp");} if(state.equals("管理員")){response.sendRedirect("admin/AdminIndex.jsp");} }else{ response.sendRedirect("login.jsp?operate=faile");}t=1時,判斷用戶權限,普通教師跳轉到front/FrontIndex.jsp頁面,管理員跳轉到admin/AdminIndex.jsp頁面。否則跳轉回到login.jsp頁面。3.3后臺管理系統(tǒng)首頁面導航整個教師信息后臺管理系統(tǒng)的界面設計是左側導航的結構,如圖3-2所示,系統(tǒng)幾乎所有的jsp頁面都具有大致類似的頁面結構和風格,例如,相同的頁面頭部、左側導航和頁腳,因此,為了頁面編碼的方便和代碼的可重用性,系統(tǒng)設計了一些公用的頁面文件,主要包括AdminEnd.jsp、AdminTop.jsp、AdminLeft.jsp,通過include指令標記將AdminEnd.jsp、AdminTop.jsp、AdminLeft.jsp嵌入到AdminIndex.jsp頁面中,這樣,編碼工作將主要集中在左側導航AdminLeft.jsp和AdminIndex.jsp頁面。其他新增的功能頁面的設計思路類似,在這里就不再贅述了。AdminIndex.jsp界面的瀏覽效果如圖3-2所示:圖3-2后臺管理首頁面瀏覽效果3.4教師信息管理教師信息管理是教師信息管理系統(tǒng)的主要模塊,其中包括對教師信息的瀏覽,添加,修改,刪除,查詢,批量刪除的功能。以便于管理員對教師信息的維護和修改。按照MVC模式對該模塊進行功能的開發(fā),對該模塊的文件構建說明如下(1)Model層:在nepu.ldz.model包中添加教師類別的實體Javabean,類名為Teachermodel。在nepu.ldz.DAO包中添加業(yè)務Javabean,類名為UserDAO。其中Teachermodel類包含6個屬性,分別是編號、姓名、密碼、性別、所屬院系和權限,同時在該類中添加屬性的set、get方法,Teachermodel類的屬性定義部分代碼如下:publicclassTeachermodel{ privateStringTid=""; privateStringTname=""; privateStringTpassword=""; privateStringTgender=""; privateStringTdepar=""; privateStringTjur="";……}(2)Controller層:在nepu.ldz.Servlet中添加類UserServlet,該servlet主要負責有關教師信息操作請求和響應。(3)View層:在Webroot文件夾下添加名為admin的文件夾,并建立TeacherList.jsp、AddTeacher.jsp、UpdateTeacher.jsp、SelectTeacher.jsp四個頁面。添加教師信息1、View層構建用于添加教師信息的AddTeacher.jsp設計如圖3-3所示,輸入教師編號,姓名,密碼,性別,所在院系和權限。點擊保存按鈕,即可完成教師信息的添加。圖3-3教師信息添加界面2、Model層構建在業(yè)務Javabean的UserDAO中添加方法Addteacher(),該方法能夠根據(jù)傳來的參數(shù)生成sql語句,借助DBManager類來進行實現(xiàn)添加功能,此sql語句是插入有表單提交的教師的基本信息,sql語句為:Stringsql="insertintoT_teachervalues('"+teacher.getTid()+"','"+teacher.getTname()+"','"+teacher.getTpassword()+"','"+teacher.getTgender()+"','"+teacher.getTdepar()+"','"+teacher.getTjur()+"')";實例化db來執(zhí)行executeUpdate(sql)方法。執(zhí)行sql語句。DBManagerdb=newDBManager();intcount=db.executeUpdate(sql);if(count>0)t=true;db.releaseResource();returnt; 3、Controller層構建在UserServlet中,負責管理員登錄后的操作請求與響應。為UserServlet添加方法doAddteacher(),在該方法中完成教師信息的添加。該方法的代碼主要是接收參數(shù),包括編號,姓名,密碼,性別,所在院系和權限。StringTid=request.getParameter("Tid");StringTname=newString(request.getParameter("Tname").getBytes("ISO-8859-1"),"GB2312"); StringTpassword=request.getParameter("Tpassword");StringTgender=newString(request.getParameter("Tgender").getBytes("ISO-8859-1"),"GB2312"); StringTdepartment=newString(request.getParameter("Tdepar").getBytes("ISO-8859-1"),"GB2312"); StringTjur=newString(request.getParameter("Tjur").getBytes("ISO-8859-1"),"GB2312"); 實例化UserDAO,來執(zhí)行Addteacher()方法,進行添加教師的信息,即傳來的參數(shù),將信息封裝,代碼如下:UserDAOuserDAO=newUserDAO();Teachermodelteacher=newTeachermodel();teacher.setTid(Tid);teacher.setTname(Tname);teacher.setTpassword(Tpassword);teacher.setTgender(Tgender);teacher.setTdepar(Tdepartment);teacher.setTjur(Tjur);userDAO.Addteacher(teacher);傳參并跳轉頁面,直接運用UserServlet里的瀏覽教師信息的方法doQueryTeacherList()即可。this.doQueryTeacherList(request,response);瀏覽教師信息1、View層構建用于瀏覽,修改,刪除教師信息的TeacherList.jsp頁面,在點擊“瀏覽/修改/刪除教師”時即可展示出來,設計如圖3-4所示。2、Model層構建在業(yè)務Javabean的UserDAO中添加方法queryTeacherList(),該方法能夠根據(jù)傳來的參數(shù)生成sql語句,借助DBManager類來進行實現(xiàn)瀏覽功能,此sql語句是瀏覽數(shù)據(jù)庫中的教師的基本信息,sql語句為:Stringsql="select*fromT_teacher";實例化db來執(zhí)行executeQuery(sql)方法。DBManagerdb=newDBManager();ResultSetrs=db.executeQuery(sql);圖3-4教師信息瀏覽界面判斷rs.next中是否有內容,如果有實例化Teachermodel,并取出id,name,password,gender,depar,jur,并放入實例化后的teacher中,代碼如下:while(rs.next()){ Teachermodelteacher=newTeachermodel(); teacher.setTid(rs.getString(1)); teacher.setTname(rs.getString(2)); teacher.setTpassword(rs.getString(3)); teacher.setTgender(rs.getString(4)); teacher.setTdepar(rs.getString(5)); teacher.setTjur(rs.getString(6)); }把整個teacher中的信息放入teacherList中,再進行循環(huán)添加,直到rs中沒有內容為止,代碼如下:teacherList.add(teacher);}最后釋放數(shù)據(jù)庫資源,代碼如下:db.releaseResource();}catch(SQLExceptione){ e.printStackTrace(); }returnteacherList;3、Controller層構建在UserServlet中,負責管理員登錄后的操作請求與響應。為UserServlet添加方法doQueryTeacherList(),在該方法中完成教師信息的瀏覽。該方法的代碼主要是將UserDAO中獲取出來的teacherList傳遞過去,然后進行頁面的跳轉即可完成瀏覽功能,代碼如下:ArrayListteacherList=newArrayList();UserDAOuserDAO=newUserDAO();teacherList=userDAO.queryTeacherList();request.setAttribute("teacherList",teacherList);RequestDispatcherrd=request.getRequestDispatcher("admin/TeacherList.jsp");rd.forward(request,response);修改教師信息1、View層構建用于修改教師基本信息的UpdateTeacher.jsp,在點擊教師信息后面的“修改”時即可展示出來,設計如圖3-5所示。圖3-5教師信息修改界面2、Model層構建在業(yè)務Javabean的UserDAO中添加方法Updateteacher(),該方法能夠根據(jù)傳來的參數(shù)生成sql語句,借助DBManager類來進行實現(xiàn)添加功能,此sql語句是瀏覽數(shù)據(jù)庫中的教師的基本信息,sql語句為:Stringsql="updateT_teachersetname='"+teacher.getTname()+"',password='"+teacher.getTpassword()+"',gender='"+teacher.getTgender()+"',department='"+teacher.getTdepar()+"',jurisdiction='"+teacher.getTjur()+"'whereid='"+teacher.getTid()+"'";實例化db來執(zhí)行executeUpdate(sql)方法。DBManagerdb=newDBManager();ResultSetrs=db.executeUpdate(sql);3、Controller層構建在UserServlet中,負責管理員登錄后的操作請求與響應。為UserServlet添加方法doUpdateteacher(),在該方法中完成教師信息的修改。該方法的代碼主要是接收參數(shù),包括編號,姓名,密碼,性別,所在院系和權限。Stringid=request.getParameter("id");Stringname=newString(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");Stringpassword=request.getParameter("password");Stringgender=newString(request.getParameter("gender").getBytes("ISO-8859-1"),"GB2312");Stringdepartment=newString(request.getParameter("department").getBytes("ISO-8859-1"),"GB2312");Stringjur=newString(request.getParameter("jur").getBytes("ISO-8859-1"),"GB2312");實例化UserDAO,來執(zhí)行Updateteacher()方法,進行修改教師的信息,即傳來的參數(shù),實例化Teachermodel,代碼如下:Teachermodelteacher=newTeachermodel();teacher.setTid(id);teacher.setTname(name);teacher.setTpassword(password);teacher.setTgender(gender);teacher.setTdepar(department);teacher.setTjur(jur);UserDAOuserDAO=newUserDAO();userDAO.Updateteacher(teacher);然后進行頁面的跳轉即可完成修改功能,代碼如下:this.doQueryTeacherList(request,response);刪除教師信息1、Model層構建在業(yè)務Javabean的UserDAO中添加方法Deleteteacher(),該方法能夠根據(jù)傳來的參數(shù)生成sql語句,借助DBManager類來進行實現(xiàn)刪除功能,此sql語句是刪除數(shù)據(jù)庫中的教師信息,sql語句為:Stringsql="deletefromT_teacherwhereid='"+teacher.getTid()+"'";實例化db來執(zhí)行executeUpdate(sql)方法。DBManagerdb=newDBManager();ResultSetrs=db.executeUpdate(sql);2、Controller層構建在UserServlet中,負責管理員登錄后的操作請求與響應。為UserServlet添加方法doDeleteteacher(),在該方法中完成教師信息的刪除。該方法的代碼主要是接收參數(shù)id,實例化Teachermodel,并實例化UserDAO,來執(zhí)行Deleteteacher()方法,進行刪除教師的信息,代碼如下:Stringid=request.getParameter("number");Teachermodelteacher=newTeachermodel();teacher.setTid(id);UserDAOuserDAO=newUserDAO();userDAO.Deleteteacher(teacher);然后進行頁面的跳轉即可完成刪除功能,代碼如下:this.doQueryTeacherList(request,response);批量刪除教師信息1、Model層構建在業(yè)務Javabean的UserDAO中添加方法DeleteAllteacher(),該方法能夠根據(jù)傳來的參數(shù)生成sql語句,借助DBManager類來進行實現(xiàn)批量刪除功能,此sql語句是批量刪除數(shù)據(jù)庫中的教師信息,先實例化db,根據(jù)傳遞過來的Tlist,求其長度,然后循環(huán)做字符串的拼接,最后執(zhí)行executeUpdate(sql)方法。代碼如下:DBManagerdb=newDBManager();for(inti=0;i<Tlist.length;i++){ sql="deletefromT_teacherwhereid='"+Tlist[i]+"'"; System.out.println(sql); count=db.executeUpdate(sql);}2、Controller層構建在UserServlet中,負責管理員登錄后的操作請求與響應。為UserServlet添加方法doDeleteAllteacher(),在該方法中完成教師信息的批量刪除。該方法的代碼主要是接收Tlist[],獲取復選框中的信息,進行批量刪除,實例化Teachermodel,并實例化UserDAO,來執(zhí)行DeleteAllteacher()方法,進行批量刪除教師的信息,代碼如下:String[]Tlist=request.getParameterValues("deleteAll");UserDAOuserDAO=newUserDAO();userDAO.DeleteAllteacher(Tlist);然后進行頁面的跳轉即可完成刪除功能,代碼如下:this.doQueryTeacherList(request,response);多條件查詢教師信息1、View層構建用于查詢教師基本信息的SelectTeacher.jsp,在點擊教師信息頁面的“查詢”時即可展示出來,設計如圖3-6所示。圖3-6教師信息查詢界面2、Model層構建在業(yè)務Javabean的UserDAO中添加方法queryByConditionTeacher(),該方法能夠根據(jù)傳來的sql語句,借助DBManager類來進行實現(xiàn)添加功能,此sql語句是瀏覽數(shù)據(jù)庫中的教師的基本信息。實例化db來執(zhí)行executeUpdate(sql)方法。DBManagerdb=newDBManager();ResultSetrs=db.executeUpdate(sql);ArrayListal=newArrayList();判斷rs.next中是否有內容,如果有實例化Teachermodel,并取出id,name,password,gender,depar,jur,并放入實例化后的teacher中,代碼如下:while(rs.next()){ Teachermodelteacher=newTeachermodel(); teacher.setTid(rs.getString(1)); teacher.setTname(rs.getString(2)); teacher.setTpassword(rs.getString(3)); teacher.setTgender(rs.getString(4)); teacher.setTdepar(rs.getString(5)); teacher.setTjur(rs.getString(6));把整個teacher中的信息放入al中,再進行循環(huán)添加,直到rs中沒有內容為止,代碼如下:al.add(teacher);}最后返回al。returnal;}3、Controller層構建在UserServlet中,負責管理員登錄后的操作請求與響應。為UserServlet添加方法doQueryTeacher(),在該方法中完成查詢教師信息。該方法的代碼主要是接收復選的條件以及textbox里的參數(shù),并根據(jù)所選條件判斷,拼接sql語句。代碼如下:String[]choice=request.getParameterValues("choice");Stringname=request.getParameter("name");if(!name.equals(""))name=newString(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312"); Stringsql="select*fromT_teacherwhere"; System.out.println(sql); if(choice!=null){ if(choice.length==1){ if(choice[0].equals("byId")){ sql+="id='"+request.getParameter("id")+"'"; }else{ sql+="namelike'%"+name+"%'"; }} else{ sql+="id='"+request.getParameter("id")+"'andnamelike'%"+name+"%'"; }實例化UserDAO,來執(zhí)行queryByConditionTeacher()方法,進行查詢教師的信息。 UserDAOuserDAO=newUserDAO(); ArrayListal=userDAO.queryByConditionTeacher(sql); request.setAttribute("teacherList",al);}否則,返回提示“請選擇查詢條件!”,代碼如下:else{ request.setAttribute("message","請選擇查詢條件!"); }然后進行頁面的跳轉即可完成查詢功能,代碼如下: RequestDispatcherrd=request.getRequestDispatcher("admin/TeacherList.jsp");rd.forward(request,response);}3.5論著信息管理論著信息管理是教師信息管理系統(tǒng)的主要模塊,其中包括對論著信息的瀏覽,添加,修改,刪除,查詢,批量刪除的功能。以便于管理員對教師論著信息的維護和修改。添加論著信息1、View層構建用于添加論著信息的AddBook.jsp設計如圖3-7所示,輸入論著編號、論著名稱、出版社和教師編號。點擊保存按鈕,即可完成論著信息的添加。圖3-7論著信息添加界面2、Model層構建在業(yè)務Javabean的UserDAO中添加方法Addbook(),該方法能夠根據(jù)傳來的參數(shù)生成sql語句,借助DBManager類來進行實現(xiàn)添加功能,此sql語句是插入有表單提交的論著的基本信息,sql語句為:Stringsql="insertintoT_lunzhuvalues('"+book.getBid()+"','"+book.getBname()+"','"+book.getBpress()+"','"+book.getTid()+"')";實例化db來執(zhí)行executeUpdate(sql)方法。執(zhí)行sql語句。DBManagerdb=newDBManager();intcount=db.executeUpdate(sql);if(count>0)t=true;db.releaseResource();returnt; 3、Controller層構建在UserServlet中,負責管理員登錄后的操作請求與響應。為UserServlet添加方法doAddbook(),在該方法中完成論著信息的添加。該方法的代碼主要是接收參數(shù),包括論著編號、論著名稱、出版社和教師編號。Stringid=request.getParameter("Bid");Stringname=newString(request.getParameter("Bname").getBytes("ISO-8859-1"),"GB2312");Stringpress=newString(request.getParameter("Bpress").getBytes("ISO-8859-1"),"GB2312");StringTid=request.getParameter("Tid");實例化UserDAO,來執(zhí)行Addbook()方法,進行添加論著的信息,即傳來的參數(shù),將信息封裝,代碼如下:UserDAOuserDAO=newUserDAO();Bookmodelbook=newBookmodel();book.setBid(id);book.setBname(name);book.setBpress(press);book.setTid(Tid);userDAO.Addbook(book);傳參并跳轉頁面,直接運用UserServlet里的瀏覽論著信息的方法doQueryBookList()即可。this.doQueryBookList(request,response);瀏覽論著信息1、View層構建用于瀏覽,修改,刪除論著信息的BookList.jsp頁面,在點擊“瀏覽/修改/刪除論著”時即可展示出來,設計如圖3-8所示。圖3-8論著信息瀏覽界面2、Model層構建在業(yè)務Javabean的UserDAO中添加方法queryBookList(),該方法能夠根據(jù)傳來的參數(shù)生成sql語句,借助DBManager類來進行實現(xiàn)添加功能,此sql語句是瀏覽數(shù)據(jù)庫中的論著的基本信息,sql語句為:Stringsql="select*fromT_lunzhu";實例化db來執(zhí)行executeQuery(sql)方法。DBManagerdb=newDBManager();ResultSetrs=db.executeQuery(sql);判斷rs.next中是否有內容,如果有實例化Bookmodel,并取出id,name,press,Tid,并放入實例化后的book中,代碼如下:while(rs.next()){ Bookmodelbook=newBookmodel(); book.setBid(rs.getString(1)); book.setBname(rs.getString(2)); book.setBpress(rs.getString(3)); book.setTid(rs.getString(4));把整個book中的信息放入bookList中,再進行循環(huán)添加,直到rs中沒有內容為止,代碼如下:bookList.add(book);}最后釋放數(shù)據(jù)庫資源,代碼如下:db.releaseResource();}catch(SQLExceptione){ e.printStackTrace(); }returnbookList;3、Controller層構建在UserServlet中,負責管理員登錄后的操作請求與響應。為UserServlet添加方法doQueryBookList(),在該方法中完成論著信息的瀏覽。該方法的代碼主要是將UserDAO中獲取出來的bookList傳遞過去,然后進行頁面的跳轉即可完成瀏覽功能,代碼如下:ArrayListbookList=newArrayList();UserDAOuserDAO=newUserDAO();bookList=userDAO.queryBookList();request.setAttribute("bookList",bookList);RequestDispatcherrd=request.getRequestDispatcher("admin/BookList.jsp");rd.forward(request,response);修改論著信息1、View層構建用于修改論著基本信息的UpdateBook.jsp,在點擊論著信息后面的“修改”時即可展示出來,設計如圖3-9所示。圖3-9論著信息修改界面2、Model層構建在業(yè)務Javabean的UserDAO中添加方法Updatebook(),該方法能夠根據(jù)傳來的參數(shù)生成sql語句,借助DBManager類來進行實現(xiàn)添加功能,此sql語句是瀏覽數(shù)據(jù)庫中的論著的基本信息,sql語句為:Stringsql="updateT_lunzhusetname='"+book.getBname()+"',press='"+book.getBpress()+"',Tid='"+book.getTid()+"'whereid='"+book.getBid()+"'";實例化db來執(zhí)行executeUpdate(sql)方法。DBManagerdb=newDBManager();ResultSetrs=db.executeUpdate(sql);3、Controller層構建在UserServlet中,負責管理員登錄后的操作請求與響應。為UserServlet添加方法doUpdatebook(),在該方法中完成論著信息的修改。該方法的代碼主要是接收參數(shù),包括論著編號、論著名稱、出版社和教師編號。Stringid=request.getParameter("id");Stringname=newString(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");Stringpress=newString(request.getParameter("press").getBytes("ISO-8859-1"),"GB2312");StringTid=request.getParameter("Tid");實例化UserDAO,來執(zhí)行Updatebook()方法,進行修改論著的信息,即傳來的參數(shù),實例化Bookmodel,代碼如下:Bookmodelbook=newBookmodel();book.setBid(id);book.setBname(name);book.setBpress(press);book.setTid(Tid);UserDAOuserDAO=newUserDAO();userDAO.Updatebook(book);然后進行頁面的跳轉即可完成修改功能,代碼如下:this.doQueryBookList(request,response);刪除論著信息1、Model層構建在業(yè)務Javabean的UserDAO中添加方法Deletebook(),該方法能夠根據(jù)傳來的參數(shù)生成sql語句,借助DBManager類來進行實現(xiàn)刪除功能,此sql語句是刪除數(shù)據(jù)庫中的論著信息,sql語句為:Stringsql="deletefromT_lunzhuwhereid='"+book.getBid()+"'";實例化db來執(zhí)行executeUpdate(sql)方法。DBManagerdb=newDBManager();ResultSetrs=db.executeUpdate(sql);2、Controller層構建在UserServlet中,負責管理員登錄后的操作請求與響應。為UserServlet添加方法doDeletebook(),在該方法中完成論著信息的刪除。該方法的代碼主要是接收參數(shù)id,實例化Bookmodel,并實例化UserDAO,來執(zhí)行Deletebook()方法,進行刪除論著的信息,代碼如下:Stringid=request.getParameter("number");Bookmodelbook=newBookmodel();book.setBid(id);UserDAOuserDAO=newUserDAO();userDAO.Deletebook(book);然后進行頁面的跳轉即可完成刪除功能,代碼如下:this.doQueryBookList(request,response);批量刪除論著信息1、Model層構建在業(yè)務Javabean的UserDAO中添加方法DeleteAllbook(),該方法能夠根據(jù)傳來的參數(shù)生成sql語句,借助DBManager類來進行實現(xiàn)批量刪除功能,此sql語句是批量刪除數(shù)據(jù)庫中的論著信息,先實例化db,根據(jù)傳遞過來的Blist,求其長度,然后循環(huán)做字符串的拼接,最后執(zhí)行executeUpdate(sql)方法。代碼如下:DBManagerdb=newDBManager();for(inti=0;i<Blist.length;i++){ sql="deletefromT_lunzhuwhereid='"+Blist[i]+"'"; count=db.executeUpdate(sql); }2、Controller層構建在UserServlet中,負責管理員登錄后的操作請求與響應。為UserServlet添加方法doDeleteAllbook(),在該方法中完成論著信息的批量刪除。該方法的代碼主要是接收Blist[],獲取復選框中的信息,進行批量刪除,實例化Bookmodel,并實例化UserDAO,來執(zhí)行DeleteAllbook()方法,進行批量刪除論著的信息,代碼如下:String[]Blist=request.getParameterValues("deleteAll");UserDAOuserDAO=newUserDAO();userDAO.DeleteAllbook(Blist);然后進行頁面的跳轉即可完成刪除功能,代碼如下:this.doQueryBookList(request,response);多條件查詢論著信息1、View層構建用于查詢論著基本信息的SelectBook.jsp,在點擊論著信息頁面的“查詢”時即可展示出來,設計如圖3-10所示。圖3-10論著信息查詢界面2、Model層構建在業(yè)務Javabean的UserDAO中添加方法queryByConditionBook(),該方法能夠根據(jù)傳來的sql語句,借助DBManager類來進行實現(xiàn)添加功能,此sql語句是瀏覽數(shù)據(jù)庫中的論著的基本信息。實例化db來執(zhí)行executeUpdate(sql)方法。DBManagerdb=newDBManager();ResultSetrs=db.executeUpdate(sql);ArrayListal=newArrayList();判斷rs.next中是否有內容,如果有實例化Bookmodel,并取出id,name,press,Tid,并放入實例化后的book中,代碼如下:while(rs.next()){ Bookmodelbook=newBookmodel(); book.setBid(rs.getString(1)); book.setBname(rs.getString(2)); book.setBpress(rs.getString(3)); book.setTid(rs.getString(4));把整個book中的信息放入al中,再進行循環(huán)添加,直到rs中沒有內容為止,代碼如下:al.add(book);}最后返回al。returnal;}3、controller層構建在UserServlet中,負責管理員登錄后的操作請求與響應。為UserServlet添加方法doQueryBook(),在該方法中完成查詢論著信息。該方法的代碼主要是接收復選的條件以及textbox里的參數(shù),并根據(jù)所選條件判斷,拼接sql語句。代碼如下:String[]choice=request.getParameterValues("choice");Stringname=request.getParameter("name");if(!name.equals(""))name=newString(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");Stringsql="select*fromT_lunzhuwhere";System.out.println(sql);if(choice!=null){if(choice.length==1){ if(choice[0].equals("byId")){ sql+="id='"+request.getParameter("id")+"'"; }else{ sql+="namelike'%"+name+"%'"; }} else{ sql+="id='"+request.getParameter("id")+"'andnamelike'%"+name+"%'"; }實例化UserDAO,來執(zhí)行queryByConditionBook()方法,進行查詢論著的信息。UserDAOuserDAO=newUserDAO();ArrayListal=userDAO.queryByConditionBook(sql);request.setAttribute("bookList",al);}否則,返回提示“請選擇查詢條件!”,代碼如下:else{ request.setAttribute("message","請選擇查詢條件!"); }然后進行頁面的跳轉即可完成查詢功能,代碼如下: RequestDispatcherrd=request.getRequestDispatcher("admin/BookList.jsp");rd.forward(request,response); }3.6科研項目信息管理科研項目信息管理是教師信息管理系統(tǒng)的主要模塊,其中包括對科研項目信息的瀏覽,添加,修改,刪除,查詢,批量刪除的功能。以便于管理員對教師科研項目信息的維護和修改。添加科研項目信息1、View層構建用于添加科研項目信息的AddProject.jsp設計如圖3-10所示,輸入科研項目編號、科研項目名稱、和教師編號。點擊保存按鈕,即可完成科研項目信息的添加。圖3-10科研項目信息添加界面2、Model層構建在業(yè)務Javabean的UserDAO中添加方法Addproject(),該方法能夠根據(jù)傳來的參數(shù)生成sql語句,借助DBManager類來進行實現(xiàn)添加功能,此sql語句是插入有表單提交的科研項目的基本信息,sql語句為:Stringsql="insertintoT_keyanvalues('"+project.getPid()+"','"+project.getPname()+"','"+project.getTid()+"')";實例化db來執(zhí)行executeUpdate(sql)方法。執(zhí)行sql語句。DBManagerdb=newDBManager();intcount=db.executeUpdate(sql);if(count>0)t=true;db.releaseResource();returnt; 3、Controller層構建在UserServlet中,負責管理員登錄后的操作請求與響應。為UserServlet添加方法doAddproject(),在該方法中完成科研項目信息的添加。該方法的代碼主要是接收參數(shù),包括科研項目編號、科研項目名稱和教師編號。Stringid=request.getParameter("Pid");Stringname=newString(request.getParameter("Pname").getBytes("ISO-8859-1"),"GB2312");StringTid=request.getParameter("Tid");實例化UserDAO,來執(zhí)行Addproject()方法,進行添加科研項目的信息,即傳來的參數(shù),將信息封裝,代碼如下:UserDAOuserDAO=newUserDAO();Projectmodelproject=newProjectmodel();project.setPid(id);project.setPname(name);project.setTid(Tid);userDAO.Addproject(project);傳參并跳轉頁面,直接運用UserServlet里的瀏覽科研項目信息的方法doQueryProjectList()即可。this.doQueryProjectList(request,response);瀏覽科研項目信息1、View層構建用于瀏覽,修改,刪除科研項目信息的ProjectList.jsp頁面,在點擊“瀏覽/修改/刪除科研項目”時即可展示出來,設計如圖3-11所示。圖3-11科研項目信息瀏覽界面2、Model層構建在業(yè)務Javabean的UserDAO中添加方法queryProjectList(),該方法能夠根據(jù)傳來的參數(shù)生成sql語句,借助DBManager類來進行實現(xiàn)添加功能,此sql語句是瀏覽數(shù)據(jù)庫中的科研項目的基本信息,sql語句為:Stringsql="select*fromT_keyan";實例化db來執(zhí)行executeQuery(sql)方法。DBManagerdb=newDBManager();ResultSetrs=db.executeQuery(sql);判斷rs.next中是否有內容,如果有實例化Projectmodel,并取出id,name,Tid,并放入實例化后的Project中,代碼如下:while(rs.next()){ ProjectmodelProject=newProjectmodel(); project.setPid(rs.getString(1)); project.setPname(rs.getString(2)); project.setTid(rs.getString(3));把整個Project中的信息放入ProjectList中,再進行循環(huán)添加,直到rs中沒有內容為止,代碼如下:projectList.add(project);}最后釋放數(shù)據(jù)庫資源,代碼如下:db.releaseResource();}catch(SQLExceptione){ e.printStackTrace(); }returnprojectList;3、Controller層構建在UserServlet中,負責管理員登錄后的操作請求與響應。為UserServlet添加方法doQueryProjectList(),在該方法中完成科研項目信息的瀏覽。該方法的代碼主要是將UserDAO中獲取出來的projectList傳遞過去,然后進行頁面的跳轉即可完成瀏覽功能,代碼如下:ArrayListprojectList=newArrayList();UserDAOuserDAO=newUserDAO();projectList=userDAO.queryProjectList();request.setAttribute("projectList",projectList);RequestDispatcherrd=request.getRequestDispatcher("admin/ProjectList.jsp");rd.forward(request,response);修改科研項目信息1、View層構建用于修改科研項目基本信息的UpdateProject.jsp,在點擊科研項目信息后面的“修改”時即可展示出來,設計如圖3-12所示。圖3-12科研項目信息修改界面2、Model層構建在業(yè)務Javabean的UserDAO中添加方法Updateproject(),該方法能夠根據(jù)傳來的參數(shù)生成sql語句,借助DBManager類來進行實現(xiàn)添加功能,此sql語句是瀏覽數(shù)據(jù)庫中的科研項目的基本信息,sql語句為:Stringsql="updateT_keyansetname='"+project.getPname()+"',Tid='"+project.getTid()+"'whereid='"+project.getPid()+"'";實例化db來執(zhí)行executeUpdate(sql)方法。DBManagerdb=newDBManager();ResultSetrs=db.executeUpdate(sql);3、Controller層構建在UserServlet中,負責管理員登錄后的操作請求與響應。為UserServlet添加方法doUpdateproject(),在該方法中完成科研項目信息的修改。該方法的代碼主要是接收參數(shù),包括科研項目編號、科研項目名稱和教師編號。Stringid=request.getParameter("id");Stringname=newString(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");StringTid=request.getParameter("Tid");實例化UserDAO,來執(zhí)行UpdateProject()方法,進行修改科研項目的信息,即傳來的參數(shù),實例化Projectmodel,代碼如下:Projectmodelproject=newProjectmodel();project.setPid(id);project.setPname(name);project.setTid(Tid);UserDAOuserD

溫馨提示

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

評論

0/150

提交評論