private PreparedStatement createPreparedInsert(TableInfo tableInfo) throws SQLException {
        StringBuilder sb = new StringBuilder();
        sb
                .append("INSERT INTO ")
                .append(tableInfo.getName());
        sb.append("(");
        int i = 0;
        for (ColInfo c : tableInfo.getColInfos()) {
            if (i++ > 0) {
                sb.append(", ");
            }
            sb.append(c.getName());
        }
        sb.append(") ");

        sb.append("VALUES");
        sb.append("(");
        for (int j = 0; j < i; j++) {
            if (j > 0) {
                sb.append(", ");
            }
            sb.append("?");
        }
        sb.append(")");

        return conn.prepareStatement(sb.toString());
    }
This is still in its early stages.  The idea is to
get something working with h2 and then add to that
as necessary.
<p>
Beware, this deletes the db file with each initialization.
<p>
Each thread must construct its own DBWriter because each
DBWriter creates its own PreparedStatements at initialization.
tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/io/DBWriter.java