




已閱讀5頁,還剩12頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
JAVA程序設計 課程設計報告課 題: 校園IP查詢系統 姓 名: 學 號: 同組姓名: 專業班級: 指導教師: 設計時間: 評閱意見:評定成績: 指導老師簽名: 年 月 日 目 錄一、系統描述:3二、 分析與設計:32.1、功能模塊劃分:3 2.1.1、IP信息存儲子系統:42.1.2、IP信息讀取子系統:42.2、數據庫結構描述:52.2.1、建立IP信息數據庫52.2.2、建立IP信息數據庫52.3、系統詳細設計文檔:62.4、各個模塊的實現方法描述:72.5、測試數據及期望結果112.5.1、存儲數據:112.5.2、讀取數據:11三、系統測試:123.1、系統運行主界面:123.2、各查詢界面:12四、心得體會:13五、參考文獻:13六、附錄:源程序 13一、系統描述: 校園IP地址查詢系統采用Java和XML結合設計開發,將局域網內的IP地址進行分組歸類,用戶可以查詢局域網內任一IP地址的歸屬。要進行本系統的開發,必須對SAX(simple API for XML)比較熟悉,并且應該熟悉Java編程,而且還要熟悉利用JDBC進行數據連接的知識。當然,還要有一定的SQL基礎和GUI編程知識。為了便于數據信息的表達和數據信息的網絡傳輸,這個系統采用了XML格式來存儲數據,即先通過JDBC-ODBC連接,將數據存儲到數據庫中,然后再從數據庫中讀出,以XML方式的形式組成XML文檔,GUI查詢界面再對這個XML文檔進行查詢操作,然后返回給用戶相應的查詢結果,因此,如何設計和開發好這個校園IP地址查詢系統,對于提高Java開發水平和XML的應用能力有極大的幫助。在這個設計開發過程中,開發者需要掌握XML文檔的表示形式、XML數據的數據庫存儲形式以及XML文檔的解析形式等。二、分析與設計:2.1、功能模塊劃分:2.1.1、IP信息存儲子系統: (1)在Access中創建IP信息表。 (2)使用java語言與數據庫交互的過程如下: 裝入數據庫驅動程序,這可以是一個JDBC驅動程序; 配置數據源;要訪問數據庫,首先要裝入JDBC驅動程序,在任何給定的時間都可以使用一些不同的驅動程序;由DriverManager通過嘗試創建與每個所知的驅動程序的連接來確定使用哪一個。應用程序將使用第一個成功連接的驅動程序。下面是配置數據源的過程:(1) 打開管理工具,選擇“數據源”,如圖2-1所示: 圖2-1 管理工具 (2)創建數據源,如圖2-2所示: 圖2-2 創建數據源界面 (3)選擇數據庫,將數據庫源名定為“data”,并選擇原先建好的數據庫“CampusIP.mdb”如圖2-3所示: 圖2-3 連接數據庫 經過上述步驟后,當用到數據庫的時候就可以用了。sd 2.1.2、IP信息讀取子系統: 一旦鏈接到數據庫,應用程序就可以開始檢索數據了。2.2、數據庫結構描述:2.2.1、建立IP信息數據庫 校園IP地址查詢系統選用Access 2007作為系統服務數據庫,這是因為Access界面友好、操作簡便,并且對于XML數據的支持較好。 為了能夠存儲IP信息,應先在Access中建立一個IP信息數據庫,具體步驟如下:(1)、打開Access數據庫,如圖2-4所示: 圖2-4 Access數據庫(2)、右鍵單擊“空白數據庫”并選擇將數據庫命名為“CampusIP.mdb”,并且設置其存儲地址,如圖2-5所示: 圖2-5 創建數據庫2.2.2、建立IP信息數據庫下面建立一個IP信息數據庫,具體步驟如下:(1)、新建數據庫表,如圖2-6所示:圖2-6 新建數據庫表(2)、設計數據表的列名、數據類型等,表中的數據項共三項:STARTIP(起始IP地址)、ENDIP(結束IP地址)和LOCAL(這段IP的屬主單位名稱),如圖2-7所示 圖2-7 數據表設置(3)、設置數據表名稱,如圖2-8所示: 圖2-8 設置數據表名稱(4)、最終的表結構,如圖2-9所示: 圖2-9 表結構2.3、系統詳細設計文檔:校園IP地址查詢系統要求比較高的響應速度和異構平臺的互通,它需要實現如下功能:(1)IP信息存儲功能。根據輸入文本文件的IP地址信息,通過ODBC數據庫連接實現對Access 2007數據庫的連接,將IP地址信息存儲到數據庫中。數據庫中的每一條IP地址信息由3個段:IP地址起始地址段、IP地址結束地址段和IP地址段屬主,并且以IP地址起始地址段和IP地址結束地址段為索引以保證地址信息的唯一性。將IP地址存儲在Access數據庫中有利于實現數據源的唯一性,也有利于IP信息數據更新的簡單性和高效性。IPInfoToDB類的主要作用是將IP地址寫入數據庫,它首先從文本文件中讀取IP地址段信息,然后再將這些信息寫入數據庫中保存。(2)IP信息讀取功能。由于需要實現IP信息查詢的跨平臺性,在進行IP地址查詢前應先將IP地址信息從SQL Server數據庫中取出并存儲為XML文件格式,這樣有利于IP地址信息的網絡傳輸和跨平臺查詢。 GenXML類的主要作用是將數據庫中的IP信息讀取出來并生成為一個XML文檔,它包含的主要方法是SaveIPFromDB(),該函數根據輸入的XML文檔保存從數據庫中讀出的IP地址信息。2.4、各個模塊的實現方法描述: 校園IP查詢系統主要包括IP地址顯示區、“開始查詢”按鈕、“退出系統”按鈕、查詢地址輸入區。IP地址顯示區羅列出局域網內所有的IP地址分段及其屬主情況、查詢地址輸入區用于輸入需要查詢的IP地址,另外還需要給查詢按鈕和退出按鈕添加相應的事件處理邏輯。(1) 、IP信息存儲功能。 IP信息存儲子系統設計主要是將文本信息中的IP地址寫入數據庫。關鍵代碼為:public class IPInfoToDB private String strTxtFileName; /IP地址文本文件名 private Connection conn = null; private Statement stmt = null; public IPInfoToDB() strTxtFileName = new String(); /設置文本文件名 public void SetTxtFileName(String strFileName) strTxtFileName = strFileName; public void SaveIPToDB() throws Exception String strSeparator = |; /the separator of the text file field String strTmp = ;/進行數據庫得連接 Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); String url = jdbc:odbc:data; conn = DriverManager.getConnection(url, , ); stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); /從文本文件中讀取數據 BufferedReader inTxt = new BufferedReader(new FileReader( strTxtFileName); while ( (strTmp = inTxt.readLine() != null) StringTokenizer strToken = new StringTokenizer(strTmp, |); String arrTmp; arrTmp = new String3; for (int i = 0; i 3; i+) arrTmpi = new String(); int index = 0; while (strToken.hasMoreElements() strTmp = (String) strToken.nextElement(); strTmp = strTmp.trim(); arrTmpindex+ = strTmp; /下面就是將這些數據寫進數據庫 String SQL = insert INTO IPInfo(STARTIP,ENDIP,LOCAL) + values( + arrTmp0 + , + arrTmp1 + , + arrTmp2 + ); stmt.execute(SQL); stmt.close(); conn.close(); (2) 、IP信息讀取功能。為了便于查詢和數據傳輸,需要將數據庫中的IP信息讀入一個XML文件中下面是關鍵的代碼:public class GenXML private String strXmlFileName; /IP地址XML文件名 private Connection conn = null; private ResultSet rs = null; private Statement stmt = null; private ResultSetMetaData resultmetadata = null; private PreparedStatement statement = null; private ResultSet resultset = null; private DocumentBuilderFactory docBuilderFactory; private DocumentBuilder docBuilder; private Document doc; private Element root; public GenXML() strXmlFileName = new String(); trydocBuilderFactory=DocumentBuilderFactory.newInstance(); docBuilder = docBuilderFactory.newDocumentBuilder(); doc = docBuilder.newDocument(); doc.normalize(); catch (Exception e) e.printStackTrace(); /設置XML文件名 public void SetXmlFileName(String strFileName) strXmlFileName = strFileName; public void SaveIPFromDB() throws Exception String strColName = new String(); String strColVal = new String(); /進行數據庫得連接Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver); String url=jdbc:microsoft:data:/localhost:1433;DatabaseName=CampusIP; stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); statement = conn.prepareStatement(select * from IPInfo); resultset = statement.executeQuery(); resultmetadata = resultset.getMetaData(); int intCols = resultmetadata.getColumnCount(); root = doc.createElement(IPADDRESS); while (resultset.next() Element nodeIPPhase = doc.createElement(IPPHASE); for (int i = 1; i = intCols; i+) strColName = resultmetadata.getColumnName(i); strColVal = resultset.getString(i); ElementnodeElement = doc.createElement(strColName); Text data = doc.createTextNode(strColVal); nodeElement.appendChild(data); nodeIPPhase.appendChild(nodeElement); System.out.println(strColVal); root.appendChild(nodeIPPhase); doc.appendChild(root); Source source = new DOMSource(doc); File file = new File(strXmlFileName); BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(strXmlFileName); StreamResult result = new StreamResult(bufferedWriter);Transformerxformer=TransformerFactory.newInstance().newTransformer(); xformer.transform(source, result); 2.5、測試數據及期望結果 2.5.1、存儲數據:如圖2-11所示: 圖2-11 存儲界面2.5.2、讀取數據:如圖2-12所示: 圖2-12 XML讀取界面3、 系統測試:3.1、系統運行主界面: 如圖3-1所示: 圖3-1 主界面3.2、各查詢界面:如圖3-2所示: 圖3-2 查詢結果四、心得體會:在這次的課程設計中,總體來說還是算成功的。通過這一次,我學到了不少實際編程的知識。并且通過這一次的課程設計,我了解到原來僅僅靠我們教材上的內容是遠遠不夠的,還必須查找很多相關的參考書。當然,才此次的和組員的合作中,彼此之間的默契是很有必要的。在這次設計開始的第一天,我就開始著手修改一個用“校園IP查詢系統”的程序,由于源程序是從中國水利水電出版社網站下載的,于是很有自信馬上能夠運行出來。但是,當實施起來的時候才發現問題不是一般的多啊,最后還是在老師的全程指導下主界面才運行出來的。雖然最后有界面運行出來,但是由于時間的問題,還是有很多問題沒有解決,比如:不能在前臺修改IP,而是只能查詢;在查詢時不能識別錯誤的IP,這是這個系統的一個很大的漏洞。雖然,此次的課程設計只有一周的時間,但我還是學到了很多書上沒有的java編程知識,并學會了簡單的使用Borland JBuilder 9。當然,最重要的一點就是提高了我對編程的興趣。五、參考文獻:1.黃曉東.Java課程設計案例精編(第二版).M.北京:中國水利水電出版社,20072.李尊朝,蘇軍.Java語言程序設計(第二版).M.北京:中國鐵道出版社,20073./softdown/.6、 附錄:源程序(1)將數據寫入數據庫的程序:package tsinghuaip;import java.sql.*;import java.util.*;import java.io.*;public class IPInfoToDB private String strTxtFileName; /IP地址文本文件名 private Connection conn = null; private Statement stmt = null; public IPInfoToDB() strTxtFileName = new String(); /設置文本文件名 public void SetTxtFileName(String strFileName) strTxtFileName = strFileName; public void SaveIPToDB() throws Exception String strSeparator = |; /the separator of the text file field String strTmp = ; /進行數據庫得連接 Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); String url = jdbc:odbc:data; conn = DriverManager.getConnection(url, , ); stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); /從文本文件中讀取數據 BufferedReader inTxt = new BufferedReader(new FileReader( strTxtFileName); while ( (strTmp = inTxt.readLine() != null) StringTokenizer strToken = new StringTokenizer(strTmp, |); String arrTmp; arrTmp = new String3; for (int i = 0; i 3; i+) arrTmpi = new String(); int index = 0; while (strToken.hasMoreElements() strTmp = (String) strToken.nextElement(); strTmp = strTmp.trim(); arrTmpindex+ = strTmp; /下面就是將這些數據寫進數據庫 String SQL = insert INTO IPInfo(STARTIP,ENDIP,LOCAL) + values( + arrTmp0 + , + arrTmp1 + , + arrTmp2 + ); stmt.execute(SQL); stmt.close(); conn.close(); (2)將數據從.txt中讀入XML的程序為:package tsinghuaip;import java.util.*;import java.io.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.PreparedStatement;import org.w3c.dom.Document;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import javax.xml.transform.dom.*;import javax.xml.transform.*;import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Text;public class GenXML private String strXmlFileName; /IP地址XML文件名 private Connection conn = null; private ResultSet rs = null; private Statement stmt = null; private ResultSetMetaData resultmetadata = null; private PreparedStatement statement = null; private ResultSet resultset = null; private DocumentBuilderFactory docBuilderFactory; private DocumentBuilder docBuilder; private Document doc; private Element root; public GenXML() strXmlFileName = new String(); try docBuilderFactory = DocumentBuilderFactory.newInstance(); docBuilder = docBuilderFactory.newDocumentBuilder(); doc = docBuilder.newDocument(); doc.normalize(); catch (Exception e) e.printStackTrace(); /設置XML文件名 public void SetXmlFileName(String strFileName) strXmlFileName = strFileName; public void SaveIPFromDB() throws Exception String strColName = new String(); String strColVal = new String(); /進行數據庫得連接 Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver); String url = jdbc:microsoft:sqlserver:/localhost:1433; + DatabaseName=CampusIP; conn = DriverManager.getConnection(url, sa, 123456); stmt = conn.createStatemet
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024中鋁資本及所屬公司社會招聘18人筆試參考題庫附帶答案詳解
- 以德掩言以行見理-【2022年暑假預習】云名著《世說新語》之“德行”卷
- 2024中移鐵通有限公司甘肅分公司社會招聘10人筆試參考題庫附帶答案詳解
- 人教版(部編版)初中語文七年級下冊 2 說和做-記聞一多先生言行片段 教案2
- 七年級地理下冊 第六章 第一節 北京教學設計1 中圖版
- 初中浙教版第十課 表格的應用表格教案設計
- 九年級化學下冊 第12單元 化學與生活 12.1 人類重要的營養物質教學設計1 (新版)新人教版
- 2024中國葛洲壩集團路橋工程有限公司社會成熟人才公開招聘47人筆試參考題庫附帶答案詳解
- 2024中國能源建設集團(股份)有限公司招聘239人筆試參考題庫附帶答案詳解
- 安全生產執法監察培訓
- TCCIAT 0043-2022 建筑工程滲漏治理技術規程
- 西藏林芝嘉園小區項目可研(可研發)
- GB∕T 14527-2021 復合阻尼隔振器和復合阻尼器
- 航運系統組成和航運企業組織結構及特點
- 煤礦安全規程執行說明
- 喪假證明模板
- 隧道二襯、仰拱施工方案
- 按期取得畢業證和學位證承諾書
- Q∕GDW 12106.4-2021 物聯管理平臺技術和功能規范 第4部分:邊緣物聯代理與物聯管理平臺交互協議規范
- 第五章 學校教育的主要活動形式:課堂教學
- 大會—冠脈微循環障礙
評論
0/150
提交評論