Hallo!

Ich wollte hier mal fragen ob jemand weiß wieso SimpleJdbcTemplate um so vieles länger dauert.

Ich inserte 1370 Records.

Mit SimpleJdbcTemplate:

Code java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
List<Object[]> batch = new ArrayList<Object[]>();
 
Object[] values = new Object[] {
                                                username,
                                                gid,
                                                neuzdate.getTime() 
                                               };
batch.add(values);
 
... am Ende
 
simpleJdbcTemplate.batchUpdate(
                                           "INSERT IGNORE INTO neuzugang (user,gid,neuzdate) VALUES (?,?,?)",
                                           batch);

Dauert ca 1 Minute.

Wenn ich es mit der Connection und Statement direkt mache:

Code java:
1
2
3
4
5
6
7
8
9
10
11
connection = dataSource.getConnection();
connection.setAutoCommit(false);
statement = connection.createStatement();
...
String insert = "INSERT IGNORE INTO neuzugang (user,gid,neuzdate) VALUES ('" + username + "','" + gid + "','" + new Timestamp(neuzdate.getTimeInMillis()) +"')";
statement.addBatch(insert);
 
... am Ende
 
statement.executeBatch();
connection.commit();

Dauert unter 1 Sekunde.

Weiß jemand wieso?