Search in sources :

Example 11 with Csv

use of org.h2.tools.Csv in project h2database by h2database.

the class TestCsv method testColumnNames.

private void testColumnNames() throws Exception {
    ResultSet rs;
    rs = new Csv().read(new StringReader("Id,First Name,2x,_x2\n1,2,3"), null);
    assertEquals("ID", rs.getMetaData().getColumnName(1));
    assertEquals("First Name", rs.getMetaData().getColumnName(2));
    assertEquals("2x", rs.getMetaData().getColumnName(3));
    assertEquals("_X2", rs.getMetaData().getColumnName(4));
    rs = new Csv().read(new StringReader("a,a\n1,2"), null);
    assertEquals("A", rs.getMetaData().getColumnName(1));
    assertEquals("A1", rs.getMetaData().getColumnName(2));
    rs = new Csv().read(new StringReader("1,2"), new String[] { "", null });
    assertEquals("C1", rs.getMetaData().getColumnName(1));
    assertEquals("C2", rs.getMetaData().getColumnName(2));
}
Also used : Csv(org.h2.tools.Csv) ResultSet(java.sql.ResultSet) StringReader(java.io.StringReader)

Example 12 with Csv

use of org.h2.tools.Csv in project h2database by h2database.

the class TestCsv method testOptions.

private void testOptions() {
    Csv csv = new Csv();
    assertEquals(",", csv.getFieldSeparatorWrite());
    assertEquals(SysProperties.LINE_SEPARATOR, csv.getLineSeparator());
    assertEquals("", csv.getNullString());
    assertEquals('\"', csv.getEscapeCharacter());
    assertEquals('"', csv.getFieldDelimiter());
    assertEquals(',', csv.getFieldSeparatorRead());
    assertEquals(",", csv.getFieldSeparatorWrite());
    assertEquals(0, csv.getLineCommentCharacter());
    assertEquals(false, csv.getPreserveWhitespace());
    String charset;
    charset = csv.setOptions("escape=\\  fieldDelimiter=\\\\ fieldSeparator=\n " + "lineComment=\" lineSeparator=\\ \\\\\\ ");
    assertEquals(' ', csv.getEscapeCharacter());
    assertEquals('\\', csv.getFieldDelimiter());
    assertEquals('\n', csv.getFieldSeparatorRead());
    assertEquals("\n", csv.getFieldSeparatorWrite());
    assertEquals('"', csv.getLineCommentCharacter());
    assertEquals(" \\ ", csv.getLineSeparator());
    assertFalse(csv.getPreserveWhitespace());
    assertFalse(csv.getCaseSensitiveColumnNames());
    charset = csv.setOptions("escape=1x fieldDelimiter=2x " + "fieldSeparator=3x " + "lineComment=4x lineSeparator=5x " + "null=6x charset=7x " + "preserveWhitespace=true caseSensitiveColumnNames=true");
    assertEquals('1', csv.getEscapeCharacter());
    assertEquals('2', csv.getFieldDelimiter());
    assertEquals('3', csv.getFieldSeparatorRead());
    assertEquals("3x", csv.getFieldSeparatorWrite());
    assertEquals('4', csv.getLineCommentCharacter());
    assertEquals("5x", csv.getLineSeparator());
    assertEquals("6x", csv.getNullString());
    assertEquals("7x", charset);
    assertTrue(csv.getPreserveWhitespace());
    assertTrue(csv.getCaseSensitiveColumnNames());
    charset = csv.setOptions("escape= fieldDelimiter= " + "fieldSeparator= " + "lineComment= lineSeparator=\r\n " + "null=\0 charset=");
    assertEquals(0, csv.getEscapeCharacter());
    assertEquals(0, csv.getFieldDelimiter());
    assertEquals(0, csv.getFieldSeparatorRead());
    assertEquals("", csv.getFieldSeparatorWrite());
    assertEquals(0, csv.getLineCommentCharacter());
    assertEquals("\r\n", csv.getLineSeparator());
    assertEquals("\0", csv.getNullString());
    assertEquals("", charset);
    createClassProxy(Csv.class);
    assertThrows(ErrorCode.FEATURE_NOT_SUPPORTED_1, csv).setOptions("escape=a error=b");
    assertEquals('a', csv.getEscapeCharacter());
}
Also used : Csv(org.h2.tools.Csv)

Example 13 with Csv

use of org.h2.tools.Csv in project h2database by h2database.

the class TestCsv method testRandomData.

private void testRandomData() throws SQLException {
    deleteDb("csv");
    Connection conn = getConnection("csv");
    Statement stat = conn.createStatement();
    stat.execute("drop table if exists test");
    stat.execute("create table test(id identity, a varchar, b varchar)");
    int len = getSize(1000, 10000);
    PreparedStatement prep = conn.prepareStatement("insert into test(a, b) values(?, ?)");
    ArrayList<String[]> list = New.arrayList();
    Random random = new Random(1);
    for (int i = 0; i < len; i++) {
        String a = randomData(random), b = randomData(random);
        prep.setString(1, a);
        prep.setString(2, b);
        list.add(new String[] { a, b });
        prep.execute();
    }
    stat.execute("call csvwrite('" + getBaseDir() + "/test.csv', 'select a, b from test order by id', 'UTF-8', '|', '#')");
    Csv csv = new Csv();
    csv.setFieldSeparatorRead('|');
    csv.setFieldDelimiter('#');
    ResultSet rs = csv.read(getBaseDir() + "/test.csv", null, "UTF-8");
    for (int i = 0; i < len; i++) {
        assertTrue(rs.next());
        String[] pair = list.get(i);
        assertEquals(pair[0], rs.getString(1));
        assertEquals(pair[1], rs.getString(2));
    }
    assertFalse(rs.next());
    conn.close();
    FileUtils.delete(getBaseDir() + "/test.csv");
}
Also used : Random(java.util.Random) PreparedStatement(java.sql.PreparedStatement) Statement(java.sql.Statement) Csv(org.h2.tools.Csv) Connection(java.sql.Connection) ResultSet(java.sql.ResultSet) PreparedStatement(java.sql.PreparedStatement)

Example 14 with Csv

use of org.h2.tools.Csv in project h2database by h2database.

the class Railroads method process.

private void process() throws Exception {
    RailroadImages.main();
    bnf = Bnf.getInstance(getReader());
    Csv csv = new Csv();
    csv.setLineCommentCharacter('#');
    ResultSet rs = csv.read(getReader(), null);
    map("grammar", rs, true);
    processHtml("jcr-sql2.html");
}
Also used : Csv(org.h2.tools.Csv) ResultSet(java.sql.ResultSet)

Example 15 with Csv

use of org.h2.tools.Csv in project h2database by h2database.

the class CsvSample method read.

/**
 * Read a CSV file.
 */
static void read() throws SQLException {
    ResultSet rs = new Csv().read("data/test.csv", null, null);
    ResultSetMetaData meta = rs.getMetaData();
    while (rs.next()) {
        for (int i = 0; i < meta.getColumnCount(); i++) {
            System.out.println(meta.getColumnLabel(i + 1) + ": " + rs.getString(i + 1));
        }
        System.out.println();
    }
    rs.close();
}
Also used : ResultSetMetaData(java.sql.ResultSetMetaData) Csv(org.h2.tools.Csv) ResultSet(java.sql.ResultSet) SimpleResultSet(org.h2.tools.SimpleResultSet)

Aggregations

Csv (org.h2.tools.Csv)15 ResultSet (java.sql.ResultSet)13 Connection (java.sql.Connection)5 ResultSetMetaData (java.sql.ResultSetMetaData)5 InputStreamReader (java.io.InputStreamReader)4 PreparedStatement (java.sql.PreparedStatement)4 Statement (java.sql.Statement)4 ByteArrayOutputStream (java.io.ByteArrayOutputStream)3 Reader (java.io.Reader)3 SimpleResultSet (org.h2.tools.SimpleResultSet)3 ByteArrayInputStream (java.io.ByteArrayInputStream)2 IOException (java.io.IOException)2 OutputStream (java.io.OutputStream)2 StringReader (java.io.StringReader)2 Sequence (org.h2.schema.Sequence)2 Value (org.h2.value.Value)2 ValueString (org.h2.value.ValueString)2 BufferedWriter (java.io.BufferedWriter)1 FileOutputStream (java.io.FileOutputStream)1 FileWriter (java.io.FileWriter)1