<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

    主站蜘蛛池模板: 久久精品网站免费观看| 日日麻批免费40分钟无码| 最近最好的中文字幕2019免费| 亚洲91av视频| 日韩精品免费视频| 亚洲av日韩av不卡在线观看| 日韩电影免费观看| 亚洲精品中文字幕乱码影院| 久久精品毛片免费观看| 亚洲最大的视频网站| 亚洲三级高清免费| 中文字幕亚洲综合久久综合| 国产网站免费观看| 免费无毒a网站在线观看| 亚洲一区二区三区在线视频| 国产中文字幕在线免费观看| 亚洲av无码片在线播放| 麻豆国产精品免费视频| 日韩亚洲人成在线| 免费播放春色aⅴ视频| 国产精品无码永久免费888| 亚洲国产精华液网站w| 97在线视频免费公开观看| 最新亚洲卡一卡二卡三新区| jjzz亚洲亚洲女人| 免费国产成人α片| 亚洲另类自拍丝袜第1页| 免费高清小黄站在线观看| 三年片在线观看免费观看大全中国| 亚洲色成人WWW永久网站| 久久不见久久见免费视频7| 91亚洲国产成人久久精品网址| 免费观看的av毛片的网站| 国产精品福利片免费看| 亚洲视频一区在线| 免费观看日本污污ww网站一区| 免费萌白酱国产一区二区三区| 亚洲AV色吊丝无码| 在线亚洲精品自拍| aa级一级天堂片免费观看| 一个人看的在线免费视频|