<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    waterye

    高效使用dbunit

    dbunit: DbUnit is a JUnit extension (also usable with Ant) targeted for database-driven projects

    official site, 好久沒(méi)更新了, 最新版本2.1還是2004年5月的

    1. use ant task

    <taskdef classpathref="project.classpath" classname="org.dbunit.ant.DbUnitTask" name="dbunit" />

     導(dǎo)出數(shù)據(jù)

    <target name="export">
    <dbunit password="${database.password}" userid="${database.userid}" 
       url
    ="${database.url}" driver="${database.driver}" supportbatchstatement="true">
    <export format="xml" dest="data/export-data.xml">
          
    <query name="FOO" sql="SELECT COL1, COL2 FROM FOO WHERE COL1=4"/>
          
    <table name="BAR"/> 
    </export>
    </dbunit>
    </target>

    tip: 不指定query、table, 導(dǎo)出所有的table

    導(dǎo)入數(shù)據(jù)

    <target name="clean_insert">
    <dbunit password="${database.password}" userid="${database.userid}" 
       url
    ="${database.url}" driver="${database.driver}">
       
    <operation format="xml" src="data/init-data.xml" type="CLEAN_INSERT" />
    </dbunit>
    </target>

    tip:
    type: UPDATE, INSERT, DELETE, DELETE_ALL, REFRESH,
          MSSQL_INSERT, MSSQL_REFRESH, MSSQL_CLEAN_INSERT.

    比較數(shù)據(jù)

    <target name="compare">
    <dbunit password="${database.password}" userid="${database.userid}" 
       url
    ="${database.url}" driver="${database.driver}">
       
    <compare format="xml" src="data/init-data.xml" />
    </dbunit>
    </target>

    2. use code

    導(dǎo)出數(shù)據(jù)

    IDatabaseConnection conn = new DatabaseConnection(jdbcConnection, schema); // oracle指定schema
    IDataSet dataSet = conn.createDataSet();
    XmlDataSet.write(dataSet, 
    new FileOutputStream("export-data.xml")); // xml file
    FlatXmlDataSet.write(dataSet,new FileOutputStream("export-data.xml")); // flat xml file
    XlsDataSet.write(dataSet,new FileOutputStream("export-data.xls")); // xls file
    FlatDtdDataSet.write(dataSet,new FileOutputStream("export-data.dtd")); // dtd file
    CsvDataSetWriter.write(dataSet, new File("export-data-csv")); // csv file

    使用DatabaseSequenceFilter, 解決違反外鍵約束的問(wèn)題

    IDatabaseConnection conn = new DatabaseConnection(jdbcConnection);
    ITableFilter filter 
    = new DatabaseSequenceFilter(conn);
    // ITableFilter filter = new DatabaseSequenceFilter(conn, tableNames);
    IDataSet dataset = new FilteredDataSet(filter, conn.createDataSet());
    XmlDataSet.write(dataset, 
    new FileOutputStream("export-data.xml"));

    導(dǎo)入數(shù)據(jù)

    DatabaseOperation.REFRESH.execute(conn, dataSet);
    DatabaseOperation.INSERT.execute(conn, dataSet);

    刪除數(shù)據(jù)

    DatabaseOperation.DELETE.execute(conn, dataSet);

    比較數(shù)據(jù)

    IDatabaseConnection conn = new DatabaseConnection(jdbcConnection);
    Compare compare 
    = new Compare();
    compare.setFormat(
    "xml");
    compare.setSrc(
    new File("export-data.xml"));
    compare.execute(conn);

    tip: 使用assert進(jìn)行比較, 作用不大
    code: Assertion.assertEquals(expectedTable, actualTable);

    3. QueryDataSet: use sql

    QueryDataSet queryDataSet = new QueryDataSet(conn);
    queryDataSet.addTable(
    "orders", ordersQuerySQL);

    posted on 2005-08-20 03:17 waterye 閱讀(1665) 評(píng)論(0)  編輯  收藏 所屬分類: OtherJava

    主站蜘蛛池模板: 亚洲精品视频久久久| 无码日韩人妻AV一区免费l | 涩涩色中文综合亚洲| 久久精品国产亚洲麻豆| 国产成人啪精品视频免费网| 天天影院成人免费观看| 免费无码又爽又刺激一高潮| 一级中文字幕免费乱码专区| 亚洲精品无码成人| 亚洲精品人成网在线播放影院| 亚洲成a人片在线观看中文动漫| 久久久久亚洲AV成人网人人软件| 在线观看免费国产视频| 黄页网站免费在线观看| 18pao国产成视频永久免费| 两个人看的www高清免费视频| 男人免费视频一区二区在线观看| 亚洲精品精华液一区二区 | 大学生一级特黄的免费大片视频| 国产a视频精品免费观看| 午夜精品免费在线观看| 叮咚影视在线观看免费完整版| 国产免费黄色无码视频| 男女猛烈无遮掩视频免费软件| 国产av无码专区亚洲av毛片搜 | 免费无码又爽又刺激毛片| 啦啦啦中文在线观看电视剧免费版| 最近在线2018视频免费观看| 99久久99热精品免费观看国产| 亚洲精品免费在线观看| 免费人成在线观看网站品爱网 | 亚洲第一AAAAA片| 亚洲成年轻人电影网站www| 亚洲成av人片天堂网| 亚洲AV天天做在线观看| 亚洲国产综合91精品麻豆| 亚洲国产美女福利直播秀一区二区| 亚洲毛片基地日韩毛片基地| 亚洲伊人久久大香线焦| 亚洲jizzjizz少妇| 一级毛片a免费播放王色|