ARP協(xié)議動態(tài)交互仿真系統(tǒng)的設(shè)計
1.2.3 系統(tǒng)流程圖
為了使用方便,ARP 協(xié)議動態(tài)交互仿真系統(tǒng)把三個角色功能集成在一個程序中。程序運行時,操作者需為機器選擇規(guī)定的角色,再根據(jù)角色功能分配,按照定義的流程完成相應(yīng)的操作。圖4 為ARP 協(xié)議動態(tài)交互仿真系統(tǒng)流程圖。
圖4 ARP 協(xié)議動態(tài)交互仿真系統(tǒng)流程
2 系統(tǒng)實現(xiàn)
2.1 ByeSQL 框架簡介
Java 流行已久,基于jdbc 封裝的持久層框架層出不窮,像Hibernate、Ibatis 等都是功能十分強大的開源框架[8]。但是這些開源框架對于一些小系統(tǒng)的應(yīng)用顯得太復(fù)雜,配置很麻煩,而且這些框架沒有真正屏蔽掉SQL 語句的書寫:
Hibernate 需要寫HQL 語句(和SQL 類似),Ibatis 就是一個sql-Object 映射框架。
ARP 協(xié)議動態(tài)交互仿真系統(tǒng)封裝了一個持久層框架byeSQL,將對數(shù)據(jù)庫的操作封裝起來,利用統(tǒng)一的約定省去配置文件中的諸多麻煩,借助java 反射機制完成表項和實體類的相互轉(zhuǎn)換。所有的邏輯控制都由java 代碼去處理。該框架可以應(yīng)用于大部分小型系統(tǒng)的開發(fā)。
持久層框架byeSQL 主要針對MySQL 數(shù)據(jù)庫,將一些常用的增、刪、改、查操作封裝起來。使開發(fā)人員在做一些小型系統(tǒng)的時候,不要再去關(guān)心持久層的實現(xiàn)(也就是不要關(guān)心SQL 代碼),只要導(dǎo)入byeSQL.jar 和MySQL 驅(qū)動包就可以利用java 代碼操作數(shù)據(jù)庫,而且配置文件十分簡單,只需輸入數(shù)據(jù)庫的用戶名和密碼即可。不過使用框架byeSQL 必須遵守一個約定,表名必須和實體類名一致,字段名必須和實體類的屬性一致,而且實體類必須符合JavaBean 規(guī)范。該框架是輕量級的,可以單獨使用也可以和其它框架結(jié)合使用。
2.2 主要框架函數(shù)
系統(tǒng)持久層框架封裝了10 個數(shù)據(jù)庫操作函數(shù),這些操作函數(shù)內(nèi)部關(guān)聯(lián)起來,就能完成對數(shù)據(jù)庫的增、刪、改、查操作,不需用戶進行干涉。部分操作函數(shù)的功能為:
①public STatic int selectCount(String beanName):查出表中表項總數(shù)(傳入該表對應(yīng)的bean 全名,返回記錄個數(shù));
?、趐ublic static List selectPage(String beanName,int start,int size):分頁查詢(傳入該表對應(yīng)的bean 全名、開始位置、每頁顯示記錄條數(shù),返回裝有所查記錄對應(yīng)的對象實例列表);
?、踦ublic static List selectOne(String beanName,StringpkName,String pkValue):根據(jù)特定字段名和值選出所需記錄(傳入該表對應(yīng)的bean 全名、特定字段名、特定字段值,返回裝有所查記錄對應(yīng)的對象實例列表);
?、躳ublic static List selectAll(String beanName):查出所有記錄(傳入該表對應(yīng)的bean 全名,返回裝有所查記錄對應(yīng)的對象實例的列表);
?、輕ublic static List select(String beanName,String select):
實現(xiàn)復(fù)雜查詢,如關(guān)聯(lián)查詢和子查詢等(傳入該表對應(yīng)的bean 全名、SQL 語句,返回裝有所查記錄對應(yīng)的對象實例的列表)。
3 結(jié)語
該系統(tǒng)實現(xiàn)了ARP 協(xié)議的動態(tài)交互仿真,完成了ARP協(xié)議整個工作過程的模擬實現(xiàn),通過動態(tài)交互操作,能夠讓學(xué)習(xí)者更輕松地學(xué)習(xí)和掌握ARP 協(xié)議。系統(tǒng)通過封裝一個持久層框架,實現(xiàn)針對MySQL 數(shù)據(jù)庫的基本增刪操作,做到使用戶不需寫SQL 語句,利用java 代碼就可以操作MySQL 數(shù)據(jù)庫。
評論