jdbc in postgres
try { Class.forName("org.postgresql.Driver").newInstance(); String url = "jdbc:postgresql://localhost:5432/erp"; String user = "xx"; String pwd = "xx"; Connection conn = DriverManager.getConnection(url, user, pwd); Statement st = conn.createStatement(); ResultSet rs = st.executeQuery("SELECT * FROM goods_picture where md5 is null"); List<String> paths = new ArrayList<String>(); int i = 0; while (rs.next()) { i++; LOGGER.debug(rs.getString(1));//id LOGGER.debug(rs.getString(2));//goodsid LOGGER.debug(rs.getString(3));//seqno LOGGER.debug(rs.getString(4));//picturetypeid LOGGER.debug(rs.getString(5));//title LOGGER.debug(rs.getString(6));//path paths.add(rs.getString(6)); LOGGER.debug(rs.getString(7));//companyid LOGGER.debug(rs.getString(8)); LOGGER.debug(rs.getString(9)); LOGGER.debug(rs.getString(10)); } LOGGER.debug("total:"+i); rs.close(); st.close(); //批量更新 conn.setAutoCommit(false); Statement stmt =conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); for(int x = 0; x < paths.size();x++){ String path = paths.get(x); String md5 = ImageMigrator.readAndUpload(null,path); if(md5!=null){ stmt.addBatch("update goods_picture set md5='"+md5+"' where path='"+path+"'"); } } stmt.executeBatch(); conn.commit(); stmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } }