Java解析IP數據庫,工程文檔


1.  工程介紹

本工程doTestIP為eclipse(java EE)下創建的工程,JDK1.6實現的功能如下:

  1、解析二進制的IP數據庫文件

  2、導出經過解析后的IP記錄文檔,只支持txt格式

  3、支持查詢IP的歸屬地

  4、支持查詢某地區的IP或者IP范圍

  5、能將數據分解成如下格式:< IP,國家,省/市,城市,詳細地址,單位地址,運營商>,並批量插入數據庫。(44萬條數據,優化后耗時約60s)

 

2.  工程結構

 


 需要的jar包:junit-4.8.1.jar & log4j-1.2.15.jar & ojdbc14.jar 

2.1   運行主類(入口)

IP地址查詢的運行類為Decorator.java

插入數據庫的運行類為Run.java

package路徑為doTestIP/src/com/showtime/main/

 

2.2   包結構

2.2.1 IPparse:這個包實現了解析IP數據庫文件和查詢IP地址的功能。

  IPSeeker.java 是主要類,其余是輔助類,public List<IPEntry> getAllData(){},該方法能獲取所有解析后的數據;

    public IPLocation getIPLocation(String ip){},該方法能根據IP查詢地址;

    public List<IPEntry> getIPEntriesDebug(String s) {},該方法根據地點查詢IP;

    public List<IPEntry> getIPEntries(String s) {},該方法根據地點查詢IP,用文件映射的方式,效率更高。

 

2.2.2 Main:運行類 

  Decorator.javaIP為地址查詢的運行類,

  Run.java為插入數據庫的運行類。

 

2.2.3 Module:這個包實現了向文件寫數據和向數據庫插入數據的功能。

   InputFileFirstExtends.java 實現導出文件的功能,文件內存放解析出類的數據;

  InputFileSecondExtends.java 實現導出文件的功能,文件內存放格式化后的數據,格式如下:< IP,國家,省/市,城市,詳細地址,單位地址,運營商>;

  InsertIntoTablesExtends.java 實現向數據庫中IP表和Area表中插入數據的功能。

      

2.2.4 SplitString:該包實現將數據分解成固定格式,如:< IP,國家,省/市,城市,詳細地址,單位地址,運營商>

  PropertyIspExtends.java 設置運營商分割的標准

  PropertyProvinceExtends.java  設置省份分割的標准

  TruncateStringImpl.java 實現數據格式轉換

 

2.2.5 功能包 

該包提供輔助。

  ConnOracleJDBC.java 提供JDBC方式連接數據庫;

  ConnOracelJNDI.java  提供JNDI方式連接數據庫;

  LogFactory.java 日志工廠

2.2.6 單元測試包 

 

 

2.3   接口和抽象類

2.3.1 AbsInputFile.java    

  導出文件的抽象類,繼承它的子類為InputFileFirstExtends.java,InputFileSecondExtends.java

2.3.2 AbsWriteIntoOracle.java

  向數據庫插入數據的抽象類,子類為InsertIntoTableExtends.java

 

 

2.3.3 AbsProperty.java      

  設置字段拆分標准的抽象類,子類為PropertyIspExtends.java,PropertyProvinceExtends.java

2.3.4 ITrucateString.java  

  格式化單條記錄的接口,實現類為TruncateStringImpl.java

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM