數據庫的統一包裝工具:dbking

jopen 10年前發布 | 47K 次閱讀 dbking 持久層框架

數據庫的統一包裝工具:dbking   DBKing
==========

DBKing是一款基于Java的數據庫處理工具集,主要包括三項主要內容:
1、為各類數據庫提供統一的操作接口,盡最大可能保障各類數據庫之間的移植性
2、通過生成器創建BO類及DAO層代碼
3、為各類數據庫之間的數據導入導出提供高效率的工具
下面對這三項功能進行詳細的介紹。

1、為各類數據庫提供統一的操作接口,盡最大可能保障各類數據庫之間的移植性
        這類工具已經很多了,比如大家耳熟能詳的Hibernate、iBatis,包括Apache的DBUtils、Spring的JdbcTemplate。為什么我們還要推出DBKing這樣一個功能類似的東西呢?
        這些工具的主要目的都是對JDBC進行包裝,使開發人員能更容易的進行數據庫開發,在代碼的可讀性、性能問題、移植問題上,這些工具都盡量做了權衡,達到了他們認為的完美。
        DBKing是鑒于我們的開發經驗和考慮,權衡出來的數據庫工具,其主要考慮的方向有以下幾點:
        1、簡潔。所有的核心接口都在一個類里邊,這個類是DBKing,代碼不過1000行,卻提供了大量的高質量功能方法,使用方法更是一目了然的簡單。DBKing核心只依賴于JDBC驅動類,十分的輕量級,易于使用。
        2、避免數據庫連接泄漏的問題。數據庫建立連接、關閉連接默認情況下都由DBKing處理。有人會覺得這樣影響效率,當然我們也提供自己手動控制連接的方法,只是默認情況下采用自動的方式。
        3、統一的數據庫操作類型。在DBKing中,所有的數據庫數據只有五種數據類型,String、Number(BigDecimal)、 Timestamp、Clob(String)、Blob(byte[]),經過反復測試后,我們會例出各種數據庫數據類型到這五種類型的映射表,當然我 們也有少數的數據類型不能支持,有些是JDBC驅動的問題,有些是我們出于移植的考慮,有些數據庫的數據類型在別的數據庫里沒有對應的數據類型支持,這樣 的數據類型只能不予支持,幸好這只是極少的一部分。
        4、簡化了很多復雜的數據庫操作。比如:數據庫分頁,你不用再關心記錄總數怎么取,不用考慮各種數據庫之間的差異,最關鍵的是絕對的高效。再比如 LOB字段的處理,可以直接通過增、刪、改、查等接口處理,遇到較大的LOB,也可以用流的方式處理,避免內存溢出的問題。再比如獲取數據庫序列,我們采 用了統一的算法,不同的數據庫都使用同一個接口來獲取序列,而且這個方法可以在多線程環境下使用,甚至是集群環境下都沒有問題。
        5、提供多種使用方式。可以單獨使用,也可以結合Spring
IoC框架使用。可以通過配置方式指定數據源,也可以通過硬代碼方式指定數據源,甚至通過第三方獲取數據庫連接的方式都是可以的。 目前工具在Oracle
11g、Microsoft SQLServer 2012、MySQL 5.6、DB2 9.7/10.1、Sybase 15.7、Infomix
11.5、PostgreSQL 9.3、Derby 10.10、Kingbase 7、DM 7、MariaDB
10.0上通過了測試。

2、通過生成器創建BO類及DAO層代碼
        這是一個配合DBKing的代碼生成器,生成基于DBKing的BO、DAO層類。有了這樣類,可以簡化開發代碼,避免低級的書寫錯誤,使開發者更專注于業務。另外,也可以在此基礎上配合一定的代碼來防止SQL注入的問題。

3、為各類數據庫之間的數據導入導出提供高效率的工具
        異構數據庫的導入導出一直是個大難題,一般的工具配置復雜,尤其是不支持LOB這樣的大字段數據,我們的這個工具不僅配置簡單,而且具有以下幾個特點。
        1、速度非常快,這個因為取決于系統環境,這個只有誰用誰知道了,至少我們是跟別的工具作過比較的。
        2、支持LOB字段的導入導出。
        3、自動偵測數據庫表的主、從關系,保障數據庫的導入不受外鍵約束的影響。
        4、根據配置可以選擇遇到重復數據時的處理方式————忽略或者中止。

項目主頁:http://www.baiduhome.net/lib/view/home/1402828081763

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!