01: /*
02: This file is part of the PolePosition database benchmark
03: http://www.polepos.org
04:
05: This program is free software; you can redistribute it and/or
06: modify it under the terms of the GNU General Public License
07: as published by the Free Software Foundation; either version 2
08: of the License, or (at your option) any later version.
09:
10: This program is distributed in the hope that it will be useful,
11: but WITHOUT ANY WARRANTY; without even the implied warranty of
12: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13: GNU General Public License for more details.
14:
15: You should have received a copy of the GNU General Public
16: License along with this program; if not, write to the Free
17: Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
18: MA 02111-1307, USA. */
19:
20: package org.polepos.teams.jdbc.drivers.melbourne;
21:
22: import org.polepos.data.*;
23: import org.polepos.teams.jdbc.*;
24:
25: /**
26: *
27: * @author Herkules
28: *
29: * Typical:
30: * 50000 objects: write 4703ms (0.09406ms/object), read 172ms (0.00344ms/object), delete 0ms (0.0ms/object)
31: */
32: public class BulkWriteSingle implements BulkWriteStrategy {
33: private final JdbcCar mCar;
34:
35: /**
36: * Creates a new instance of BulkWriteSingle.
37: */
38: public BulkWriteSingle(JdbcCar car) {
39: mCar = car;
40: }
41:
42: /**
43: * Dump an array of pilots to the DB by writing one-by-one.
44: */
45: public void savePilots(String tablename, Pilot[] p, int count,
46: int index) {
47: for (int i = 0; i < count; i++) {
48: savePilot(tablename, p[i], index++);
49: }
50: }
51:
52: /**
53: * Helper:
54: * Write a single pilot to the database.
55: */
56: private void savePilot(String tablename, Pilot p, int index) {
57: StringBuffer stmt = new StringBuffer("insert into ");
58: stmt.append(tablename);
59: stmt.append(" (id,Name,FrontName,Points,LicenseID) values (");
60: stmt.append(Integer.toString(index)).append(", '");
61: stmt.append(p.getName()).append("', '");
62: stmt.append(p.getFirstName()).append("', ");
63: stmt.append(Integer.toString(p.getPoints())).append(", ");
64: stmt.append(Integer.toString(p.getLicenseID())).append(")");
65:
66: mCar.executeSQL(stmt.toString());
67: }
68: }
|