out.println("["); } else if (format == Format.CSV) { out.println(dumpFieldNames(fieldNames)); if (rsm == null) { rsm = rs.getMetaData(); idIsAscii = !isBinaryType(rsm.getColumnType(1)); long modcount = rs.getLong("MODCOUNT"); long cmodcount = rs.getLong("CMODCOUNT"); Long hasBinary = readLongOrNullFromResultSet(rs, "HASBINARY"); Boolean deletedOnce = readBooleanOrNullFromResultSet(rs, "DELETEDONCE"); String data = rs.getString("DATA"); byte[] bdata = rs.getBytes("BDATA"); StringBuilder fulljson = dumpRow(ser, id, row); if (format == Format.CSV) { out.println(asCSV(fieldNames, fulljson)); } else { fulljson = asJSON(fieldNames, fulljson); if (format == Format.JSONARRAY && needComma && !rs.isLast()) { fulljson.append(",");
@NotNull private static StringBuilder asCSV(List<String> csvFieldNames, StringBuilder fulljson) { Map<String, Object> doc = (Map<String, Object>) JSON.parse(fulljson.toString()); StringBuilder buf = new StringBuilder(); String delim = ""; for (String field : csvFieldNames) { buf.append(delim); delim = ","; String[] fn = field.split("\\."); boolean checkMember = fn.length > 1; if (doc.containsKey(fn[0])) { Object o = doc.get(fn[0]); if (checkMember) { if (o instanceof Map) { Map<String, Object> m = (Map<String, Object>) o; if (m.containsKey(fn[1])) { dumpJsonValuetoCsv(buf, m.get(fn[1])); } } } else { dumpJsonValuetoCsv(buf, o); } } } return buf; }
out.println("["); } else if (format == Format.CSV) { out.println(dumpFieldNames(fieldNames)); List<String> fields = parseDel(line); String id = fields.get(iId); String smodified = fields.get(iModified); smodified.length() == 0 ? 0 : Long.parseLong(smodified), Long.parseLong(smodcount), Long.parseLong(scmodcount), -1L, -1L, -1L, sdata, bytes); StringBuilder fulljson = dumpRow(ser, id, row); if (format == Format.CSV) { out.println(asCSV(fieldNames, fulljson)); } else { fulljson = asJSON(fieldNames, fulljson); if (format == Format.JSONARRAY && needComma) { fulljson.append(",");
System.exit(0); } else if ("--help".equals(param)) { printHelp(); System.exit(0); } else { System.err.println(RDBExport.class.getName() + ": invalid parameter " + args[i]); printUsage(); System.exit(2); printUsage(); System.exit(2); printUsage(); System.exit(2); } else if (dumpfile != null) { columns = (columns == null) ? "id, modified, hasbinary, deletedonce, cmodcount, modcount, dsize, data, bdata" : columns; List<String> columnList = Arrays.asList(columns.toLowerCase(Locale.ENGLISH).replace(" ", "").split(",")); dumpFile(dumpfile, lobdir, format, out, fieldList, columnList, ser); } else { if (columns != null) { System.err.println(RDBExport.class.getName() + ": column names ignored when using JDBC"); dumpJDBC(url, user, pw, table, query, format, out, fieldList, ser);
@Test public void testparseDel() { // actually, RFC 4180 format String[] empty = new String[0]; String[] result; result = RDBExport.parseDel("1,2,3").toArray(empty); assertArrayEquals(new String[] { "1", "2", "3" }, result); result = RDBExport.parseDel("\"a\",\"b,c\",\"d\"\"e\"").toArray(empty); assertArrayEquals(new String[] { "a", "b,c", "d\"e" }, result); } }
out.println("["); } else if (format == Format.CSV) { out.println(dumpFieldNames(fieldNames)); List<String> fields = parseDel(line); String id = fields.get(iId); String smodified = fields.get(iModified); smodified.length() == 0 ? 0 : Long.parseLong(smodified), Long.parseLong(smodcount), Long.parseLong(scmodcount), -1L, -1L, -1L, sdata, bytes); StringBuilder fulljson = dumpRow(ser, id, row); if (format == Format.CSV) { out.println(asCSV(fieldNames, fulljson)); } else { fulljson = asJSON(fieldNames, fulljson); if (format == Format.JSONARRAY && needComma) { fulljson.append(",");
System.exit(0); } else if ("--help".equals(param)) { printHelp(); System.exit(0); } else { System.err.println(RDBExport.class.getName() + ": invalid parameter " + args[i]); printUsage(); System.exit(2); printUsage(); System.exit(2); printUsage(); System.exit(2); } else if (dumpfile != null) { columns = (columns == null) ? "id, modified, hasbinary, deletedonce, cmodcount, modcount, dsize, data, bdata" : columns; List<String> columnList = Arrays.asList(columns.toLowerCase(Locale.ENGLISH).replace(" ", "").split(",")); dumpFile(dumpfile, lobdir, format, out, fieldList, columnList, ser); } else { if (columns != null) { System.err.println(RDBExport.class.getName() + ": column names ignored when using JDBC"); dumpJDBC(url, user, pw, table, query, format, out, fieldList, ser);
out.println("["); } else if (format == Format.CSV) { out.println(dumpFieldNames(fieldNames)); if (rsm == null) { rsm = rs.getMetaData(); idIsAscii = !isBinaryType(rsm.getColumnType(1)); long modcount = rs.getLong("MODCOUNT"); long cmodcount = rs.getLong("CMODCOUNT"); Long hasBinary = readLongOrNullFromResultSet(rs, "HASBINARY"); Boolean deletedOnce = readBooleanOrNullFromResultSet(rs, "DELETEDONCE"); String data = rs.getString("DATA"); byte[] bdata = rs.getBytes("BDATA"); StringBuilder fulljson = dumpRow(ser, id, row); if (format == Format.CSV) { out.println(asCSV(fieldNames, fulljson)); } else { fulljson = asJSON(fieldNames, fulljson); if (format == Format.JSONARRAY && needComma && !rs.isLast()) { fulljson.append(",");
@NotNull private static StringBuilder asCSV(List<String> csvFieldNames, StringBuilder fulljson) { Map<String, Object> doc = (Map<String, Object>) JSON.parse(fulljson.toString()); StringBuilder buf = new StringBuilder(); String delim = ""; for (String field : csvFieldNames) { buf.append(delim); delim = ","; String[] fn = field.split("\\."); boolean checkMember = fn.length > 1; if (doc.containsKey(fn[0])) { Object o = doc.get(fn[0]); if (checkMember) { if (o instanceof Map) { Map<String, Object> m = (Map<String, Object>) o; if (m.containsKey(fn[1])) { dumpJsonValuetoCsv(buf, m.get(fn[1])); } } } else { dumpJsonValuetoCsv(buf, o); } } } return buf; }