说明:取出一张表数据(select)向另外一张表做数据迁移(插入)
public static void insertUserInfo() throws Exception {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://192.168.1.1:3306/sql?
useUnicode=true&characterEncoding=utf-8";
Connection conn = DriverManager.getConnection(url, "root", "root");
//查询数据
String sql1 = "select uid........................";
PreparedStatement ps = conn.prepareStatement(sql1);
ResultSet rs = ps.executeQuery(sql1);
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
list=chanRsMap(rs);
//插入数据
String sql2 = "insert into uid...................";
ps=conn.prepareStatement(sql2);
for (Map<String, Object> map : list) {
ps.setInt(1, Integer.parseInt(map.get("uid")==null?"0":map.get("uid").toString()));
ps.executeUpdate();
}
System.out.println("app_userinfo====插入完成");
//关闭
rs.close();
ps.close();
conn.close();
}
//rs转map集合
public static List chanRsMap(ResultSet rs) throws SQLException, InstantiationException, IllegalAccessException{
ResultSetMetaData prsmd = rs.getMetaData();
int pcCount = prsmd.getColumnCount();
List list = new ArrayList();
//遍历每条记录
while(rs.next()){
Map<String,String> map = new HashMap<>();
for(int i=1;i<=pcCount;i++){
map.put(rsm.getColumnName(i), rs.getObject(i)==null?null:rs.getObject(i).toString());
}
list.add(map);
}
return list;
}
解决了自己的问题,我还只是个小白,文章仅供参考,如有不当,谢谢指教!!!谢谢
本人稍会一点java jdbc操作数据库,有兴趣可以一起讨论