二是直接自己写程序用JDBC->SQL转换,快则快矣,但经常会写的比较乱、特别是列数多的时候。
所以,我又会用万能老倌DBUnit+Dom4j,自己写程序来导出导入。
DBUnit因为具有xml<-->database的功能,所以很多地方都能够担任。用XML来写EAI,比SQL语句清晰,而且效果和写映射文件差不多,但因为都写在程序里,不用映射文件、提取数据定义文件、转换类翻来覆去四处看。
另外,它本身带了REFRESH(如果不存在就插入,否则就更新,以主键为依据), CLEAN_INSERT(全部删除再插入,和ReFresh比,会把不在XML中的数据删除)等几种操作,又简省了编程的功夫。
例子代码:
//Dom4j创建Document并向其赋值
Document document = DocumentHelper.createDocument();
document.addElement("dataset");
Element root = document.getRootElement();
while(rs.next())
{
item.attribute("bs").setValue(rs.getString("orderItemNo"));
root.add(item.createCopy());
}
//把Documenth转换为DBUnit的DataSet并解决中文编码问题
InputSource is = new DocumentSource(document).getInputSource();
is.setEncoding("GBK");
IDataSet dataSet = new FlatXmlDataSet(is);
//建立DBUnit数据库连接
Connection conn = .....;
DatabaseConnection dbCon = new DatabaseConnection(conn);
//执行插入操作
DatabaseOperation.INSERT.execute(dbCon, dataSet);
本文地址:http://com.8s8s.com/it/it11412.htm