两个数据库之间使用DB LINK进行访问,现在需要将一个数据库表中的数据复制到另一个数据库表中,大概有200多万条数据,直接使用insert into 语句,平时数据库没人用的时候,大概7到8分钟就可以导完,若跑批任务使用数据库,花了大概20多分钟也导不完,还有没有什么快速稳定一点的导数方式,求大神帮助!!!!!不胜感激!!!!!
public static List<Map> getList(String sql,Connection conn2) throws SQLException {
List list = new ArrayList();
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = conn2;
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
//源 数据 (构成表的 行 列 )
ResultSetMetaData metaData = rs.getMetaData();
//获取表的列数 几列
int columnCount = metaData.getColumnCount();
Map map = null;
while(rs.next()) {
//Student stu = new Student();
//Object obj = clazz.newInstance();
map = new HashMap();
for (int i = 1; i <= columnCount; i++) {
//key字段名 value字段的值
map.put(metaData.getColumnLabel(i), rs.getObject(i));
// sid 1 sname 宋小宝
// BeanUtils.copyProperty(obj, metaData.getColumnLabel(i), rs.getObject(i));
}
list.add(map);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
close(rs, ps, conn);
}
return list;
}
这是我以前的工具类。后来改了,你看看能使吗?封装成map
oracle數據庫使用數據泵導出導入即可,快速完成。
以下是例子
expdp system/oracle directory=dump dumpfile=20161109sfs.dmp logfile=20161109sfs.log schemas=SFS;
java多线程迁移表,使用jdbc可以快点,思路,查询一些数据封装成map,放入list,遍历list转成insert语句