【文章內(nèi)容簡介】
認值 示意 說明 1 Tid Int 是 否 教工號 外鍵( T_teacher::Tid) 2 Tname Vachar 20 姓名 3 Tsex char 2 性別 4 Schid tinyint 學院 號 外鍵( T_schools::Schid) 5 Tphone bigint 電話 6 Tqq bigint qq 7 Tmail varchar 50 郵箱 8 Tworkplace varchar 30 辦公地點 9 Ttitle varchar 10 職稱 表 33畢設題目 表 (T_topic) 序號 列號 數(shù)據(jù)類型 長度 小數(shù) 標識 主鍵 允許空 默認值 示意 說明 1 Topid int 是 否 題目編號 2 Topname varchar 50 否 題目名稱 3 Topproperty char 8 題目性質(zhì) 理論研究,生產(chǎn)實踐, 科學實驗 12 4 Toptype char 10 題目類型 工程設計型 ,工程技術型 ,實驗研究型 ,軟件開發(fā)型 5 Topsource varchar 50 題目來源 6 Topcontent text 題目內(nèi)容 7 Toptime datetime 否 getdate() 發(fā)布日期 8 Topselect bit 0 是否已被選 1為是; 0為否 9 Tid int 否 教師編號 外鍵( T_teacher::Tid) 表 34畢設題目臨時 表 (T_temptopictb) 序號 列號 數(shù)據(jù)類型 長度 小數(shù) 標識 主鍵 允許空 默認值 示意 說明 1 Topid int 是 否 題目編號 2 Topname varchar 50 否 題目名稱 3 Topproperty char 8 題目性質(zhì) 理論研究,生產(chǎn)實踐, 科學實驗 4 Toptype char 10 題目類型 工程設計型 ,工程技術型 ,實驗研究型 ,軟件開發(fā)型 5 Topsource varchar 50 題目來源 6 Topcontent text 題目內(nèi)容 7 Toptime datetime 否 getdate() 上報日期 8 Tid int 教師編號 外鍵( T_teacher::Tid) 9 Rid int 0 評審編號 外鍵( T_reviewer::Rid) 13 表 35系(專業(yè)) 表 (T_faculties) 序號 列號 數(shù)據(jù)類型 長度 小數(shù) 標識 主鍵 允許空 默認值 示意 說明 1 Fid tinyint 是 否 系編號 2 Fname varchar 30 否 系名稱 表 36學院 表 (T_schools) 序號 列號 數(shù)據(jù)類型 長度 小數(shù) 標識 主鍵 允許空 默認值 示意 說明 1 Schid tinyint 是 否 學院編號 2 Schname varchar 30 否 學院名稱 14 四、系統(tǒng)實現(xiàn) 建立數(shù)據(jù)庫 數(shù)據(jù)庫采用 SqlServer2020,數(shù)據(jù)庫名稱為 GPMS。 數(shù)據(jù)庫創(chuàng)建流程如下: 圖 數(shù)據(jù)庫創(chuàng)建流程 數(shù)據(jù)庫關系圖如下: 15 T _ a d m in is t r a t o rA i dA n a m eT _ c h o o s e t o p icS idT o p idT _ f a c u lt ie sF i dF n a m eT _ r e v d e t a ilR i dR n a m eR s e xS c h i dR p h o n eR q qR m a i lT _ r e v ie w e rR i dR n a m eT _ r e v ie w t o p icT o p i dR i dT i dt i m eT _ s c h o o lsS c h idS c h n a m eT _ s t u d e n tS i dS n a m eT _ s t u d e t a ilS i dS n a m eS s e xS g r a d eS c l a s sF i dS c h i dS p h o n eT _ t e a c h e rTi dTn a m eT _ t e a d e t a ilT i dT n a m eT s e xS c h i dT p h o n eT q qT m a i lT _ t e m p t o p ic t bT o p i dT o p n a m eT o p p r o p e r t yT o p t y p eT o p s o u r c eT o p c o n t e n tT o p t i m eT _ t o p icT o p i dT o p n a m eT o p p r o p e r t yT o p t y p eT o p s o u r c eT o p c o n t e n tT o p t i m e 圖 數(shù)據(jù)庫關系圖 程序設計 工程目錄結(jié)構 核心技術說明 16 J2EE中 重量級框架 我們采用 Java Servlet + Java Server Pages (JSP) + Enterprise Java Bean (EJB )的 J2EE中重量級框架, 其中所包含的各類組件、服務架構及技術層次,均有共同的標準及規(guī)格,讓各種依循 J2EE 架構的不同平臺之間,存在良好的兼容性,解決過去企業(yè)后端使用的信息產(chǎn)品彼此之間無法兼容,企業(yè)內(nèi)部或外部難以互通的窘境。 DAO(數(shù)據(jù)庫接口層 )的封裝 在核心 J2EE模式中是這樣介紹 DAO模式的:為了建立一個健壯的 J2EE應用,應該將所有對數(shù)據(jù)源的訪問操作抽象封裝在一個公共 API中。用程序設計的語言來說,就是建立一個接 口,接口中定義了此應用程序中將會用到的所有事務方法。在這個應用程序中,當需要和數(shù)據(jù)源進行交互的時候則使用這個接口,并且編寫一個單獨的類來實現(xiàn)這個接口在邏輯上對應這個特定的數(shù)據(jù)存儲。 我們采用 DAO 的思想,將所有對數(shù)據(jù)源數(shù)據(jù)庫的訪問操作抽象封裝在幾個接口類中, 使 事務界限 更加 清晰 , 分離了業(yè)務邏輯和數(shù)據(jù)庫基礎操作 , 代碼結(jié)構 也 看起來非常清晰 。 還有一個 好處是,數(shù)據(jù)庫的修改只要修改 DAO 層的訪問方式就可以了,不用整個項目都進行修改。 Ajax技術異步刷新 傳統(tǒng)的 web應用允許用戶填寫表單 (form),當提交表單時 就向 web服務器發(fā)送一個請求。服務器接收并處理傳來的表單,然 后 返回一個新的網(wǎng)頁。這個做 法浪費了許多帶寬,因為在前 后 兩個頁面中的大部分 HTML 代碼往往是相同的。由于每次應用的交互都需要向服務器發(fā)送請求,應用的響應時間就依賴于服務器的響應時間。這導致了用戶界面的響應比本地應用慢得多。 與此不同, AJAX應用可以僅向服務器發(fā)送并取回必需的數(shù)據(jù)(而不是返回整個頁面,只是把從服務器端上取出的數(shù)據(jù)填充到 div或 span層上去而已,實現(xiàn)無刷新的效果),它使用 SOAP或其它一些基于 XML的 web service 接口,并 在客戶端采用 JavaScript處理來自服務器的響應。因為在服務器和瀏覽器之間交換的數(shù)據(jù)大量減少,結(jié)果我們就能看到響應更快 的應用。同時很多的處理工作可以在發(fā)出請求的客戶端機器上完成,所以 Web服務器的處理時間也減少了。 使用 Ajax 的最大優(yōu)點,就是能在不更新整個頁面的前提下維護數(shù)據(jù)。這使得 Web應用程序更為 迅捷地回應用戶動作,并避免了在網(wǎng)絡上發(fā)送那些沒有改變過的信息。 Ajax不需要任何瀏覽器插件,但需要用戶允許 JavaScript在瀏覽器上執(zhí)行。 數(shù)據(jù)庫連接池 17 在傳統(tǒng)的兩層結(jié)構中,客戶端程序在啟 動時打開數(shù)據(jù)庫連接,在退出程序時關閉數(shù)據(jù)庫連接。這樣,在整個程序運行中,每個客戶端始終占用一個數(shù)據(jù)庫連接,即使在大量沒有數(shù)據(jù)庫操作的空閑時間,如用戶輸入數(shù)據(jù)時,從而造成數(shù)據(jù)庫連接的使用效率低下。 在三層結(jié)構模式中,數(shù)據(jù)庫連接通過中間層的連接池管理。只有當用戶真正需要進行數(shù)據(jù)庫操作時,中間層才從連接池申請一個連接,數(shù)據(jù)庫操作完畢,連接立即釋放到連接池中,以供其他用戶使用。這樣,不僅大大提高了數(shù)據(jù)庫連接的使用效率,使得大量用戶可以共享較少的數(shù)據(jù)庫連接,而且省去了建立連接的時間。 我們以 Tomcat7數(shù)據(jù)庫連 接池配置 sqlserver2020。 Tomcat JDBC連接池提供對多種數(shù)據(jù)庫的支持 。 前提要修改 tomcat服務器目錄下面的 conf中 的 配置文件和 程序 中 的 , 代碼 中以如下方式實現(xiàn) : Context c = new InitialContext()。 DataSource ds = (DataSource)(java:p/env/jdbc/books)。 conn = ()。 動態(tài)頁面的實現(xiàn)( CSS+動 態(tài) js 腳本) JS的作用是制作動 .態(tài)網(wǎng)頁效果等,是提高用戶體驗的利器