DBUnit匯出資料庫的中文問題

2021-06-03 22:52:09 字數 1078 閱讀 9793

jdbc:mysql:

而對於oracle,則只需要直接給出url就可以了。

檢視了一下dbunit的原始碼,flatxmldataset的write方法有三種形式:

public static void write(idataset dataset, writer writer)

public static void write(idataset dataset, writer writer, string encoding)

public static void write(idataset dataset, outputstream out)

如果傳入outputstream物件,就會有問題(具體原因待查),而如果傳入filewriter,則一切正常:

idataset fulldataset = connection.createdataset();

flatxmldataset.write(fulldataset, new filewriter(\」full.xml\」), \」gb2312\」);

encoding引數可以不指定,dbunit會自動判斷,在我的機器上,最後生成的xml,encoding是\」gb1030\」。

另一方面,如果使用build指令碼來實現匯出功能,則會遇到一些麻煩:

首先,對於mysql的url字串,如果不將&替換成&,則會遇到the reference to entity \」characterencoding\」 must end with the \』;\』 delimiter的錯誤。

其次,通過查詢dbunit的原始碼發現,dbunit task中的export,是使用outputstream作為flatxmlwriter的傳入引數的:

outputstream out = new fileoutputstream(_dest);

flatxmlwriter writer = new flatxmlwriter(out);

writer.setdoctype(_doctype);

writer.write(dataset);

不得已,只好將其改為filewriter的,重新打包後即可徹底解決中文亂碼的問題了。

**:

匯出資料庫

exp 引數例項 匯出整個例項 exp wjh orcl file wjh.dmp log wjh.log full y consistent y direct y wjh應具有dba許可權 匯出某個使用者所有物件 exp wjh orcl file wjh.dmp log wjh.log owne...

MySQL匯出匯出資料庫

預設匯出路徑為mysql的內建路徑,因此這裡都加上了 documents 作為路徑。匯出整個資料庫 mysqldump u root p test documents test.sql 匯出資料庫乙個表 mysqldump h hostname u username p password datab...

Oracle資料庫匯入和匯出以及出現的問題

資料庫匯出 1 將資料庫 test 完全匯出 使用者名稱 system 密碼manager 匯出到d daochu.dmp 中exp system manager test file d daochu.dmp full y 2 將資料庫中 system 使用者與sys 使用者的表匯出 exp sys...