• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    如何使用DBUnit做數據備份恢復

    發布: 2009-3-30 11:33 | 作者: 網絡轉載 | 來源: 測試時代采編 | 查看: 237次 | 進入軟件測試論壇討論

    領測軟件測試網 DBUnit 做數據備份恢復工具

    DBunit(http://dbunit.sourceforge.net/ )是一個非常好的數據庫unit系列工具.
    一般都是用它在測試的時候管理數據庫。我們可以發揮一下,用它做一個備份和恢復的數據庫管理工具。

    mysql
    為例,正好現在還沒有找一個好用的mysql備份和恢復工具。這個是在代碼中管理不是用ant的方式。

    主要是用到核心組件:IDatabaseConnection、IDataSet、DatabaseOperation 。

    先看代碼:
       /**
         * 導出數據到指定文件
         * @param file 一個標準的java.io.File
         * @param connection  一個標準的java.sql.Connection
         * @throws org.dbunit.DatabaseUnitException
         */
        public static void exportRoom(File file, Connection connection) throws DatabaseUnitException, IOException {
            IDatabaseConnection databaseConnection = new DatabaseConnection(connection);
            QueryDataSet dataSet = new QueryDataSet(databaseConnection);
            dataSet.addTable("room");
            Writer writer = new FileWriter(file);
            XmlDataSetWriter w = new XmlDataSetWriter(writer);
            w.write(dataSet);
            writer.flush();
            writer.close();
        }
    在這個方法中指定了一個表名"room",如果有多個表可以通過參數或其他的方式按照這種方式繼續增加。這個文件是XML格式的。具體格式說明或其他格式參見http://dbunit.sourceforge.net/components.html#databaseconnection

        /**
         * 導入數據到ROOM表
         * @param file  一個標準的java.io.File
         * @param connection 一個標準的java.sql.Connection
         */
        public static void importRoom(File file, Connection connection) throws DatabaseUnitException, IOException, SQLException {
            IDataSetProducer dataSetProducer = new XmlProducer(FileHelper.createInputSource(file));
            IDataSet dataSet = new CachedDataSet(dataSetProducer);
            IDatabaseConnection databaseConnection = new DatabaseConnection(connection);
            DatabaseOperation operation = DatabaseOperation.CLEAN_INSERT;
            DatabaseOperation.TRANSACTION(operation);
            operation.execute(databaseConnection, dataSet);
            DatabaseOperation.CLOSE_CONNECTION(operation);
        }
    這個方法可以把上面生成的XML文件導入到數據庫中,如果是其他格式的文件只需要更換IDataSetProducer的實現類就可以了。具體格式請參見APIDOC
    在這個方法里使用了事務控制,保證數據的一致性。

    有了這兩個方法我們就可以再發揮一下,然后為客戶提供一個備份恢復數據的工具了。如果再加入壓縮文件的支持就更加完美了。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: dbunit DbUnit DBUnit


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>