1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.dbunit.database.statement;
23
24 import org.slf4j.Logger;
25 import org.slf4j.LoggerFactory;
26
27 import org.dbunit.database.DatabaseConfig;
28 import org.dbunit.database.IDatabaseConnection;
29
30 import java.sql.SQLException;
31
32
33
34
35
36
37 public class PreparedStatementFactory extends AbstractStatementFactory
38 {
39
40
41
42
43 private static final Logger logger = LoggerFactory.getLogger(PreparedStatementFactory.class);
44
45 public IBatchStatement createBatchStatement(IDatabaseConnection connection)
46 throws SQLException
47 {
48
49 logger.debug("createBatchStatement(connection={}) - start", connection);
50
51 if (supportBatchStatement(connection))
52 {
53 return new BatchStatement(connection.getConnection());
54 }
55 else
56 {
57 return new SimpleStatement(connection.getConnection());
58 }
59 }
60
61 public IPreparedBatchStatement createPreparedBatchStatement(String sql,
62 IDatabaseConnection connection) throws SQLException
63 {
64 if (logger.isDebugEnabled())
65 {
66 logger.debug("createPreparedBatchStatement(sql={}, connection={}) - start", sql, connection);
67 }
68
69 Integer batchSize = (Integer)connection.getConfig().getProperty(DatabaseConfig.PROPERTY_BATCH_SIZE);
70
71 IPreparedBatchStatement statement = null;
72 if (supportBatchStatement(connection))
73 {
74 statement = new PreparedBatchStatement(sql, connection.getConnection());
75 }
76 else
77 {
78 statement = new SimplePreparedStatement(sql, connection.getConnection());
79 }
80 return new AutomaticPreparedBatchStatement(statement, batchSize.intValue());
81 }
82 }
83
84
85
86