01: /*
02: * Copyright 2001-2007 Geert Bevin <gbevin[remove] at uwyn dot com>
03: * Distributed under the terms of either:
04: * - the common development and distribution license (CDDL), v1.0; or
05: * - the GNU Lesser General Public License, v2.1 or later
06: * $Id: TestInsert.java 3634 2007-01-08 21:42:24Z gbevin $
07: */
08: package com.uwyn.rife.database.queries;
09:
10: import com.uwyn.rife.database.BeanImpl;
11: import com.uwyn.rife.database.Datasource;
12: import com.uwyn.rife.database.DbPreparedStatementHandler;
13: import com.uwyn.rife.database.DbQueryManager;
14: import com.uwyn.rife.database.exceptions.DatabaseException;
15:
16: public abstract class TestInsert extends TestQuery {
17: public TestInsert(String name) {
18: super (name);
19: }
20:
21: public DbQueryManager setupQuery(Datasource datasource) {
22: DbQueryManager manager = new DbQueryManager(datasource);
23:
24: CreateTable createtable = new CreateTable(datasource);
25: createtable.table("tablename").columns(BeanImpl.class).column(
26: "nullColumn", String.class).precision(
27: "propertyBigDecimal", 18, 9).precision("propertyChar",
28: 10).precision("propertyDouble", 12, 3).precision(
29: "propertyFloat", 13, 2)
30: .precision("propertyString", 255).precision(
31: "propertyStringbuffer", 100).precision(
32: "nullColumn", 255);
33:
34: try {
35: manager.executeUpdate(createtable);
36:
37: createtable.table("table2");
38: manager.executeUpdate(createtable);
39: } catch (DatabaseException e) {
40: cleanupQuery(manager);
41: throw new RuntimeException(e);
42: }
43:
44: return manager;
45: }
46:
47: private void cleanupQuery(DbQueryManager manager) {
48: // clean up nicely
49: DropTable drop_table = new DropTable(manager.getDatasource());
50: try {
51: drop_table.table("tablename");
52: manager.executeUpdate(drop_table);
53:
54: drop_table.clear();
55: drop_table.table("table2");
56: manager.executeUpdate(drop_table);
57: } catch (DatabaseException e) {
58: System.out.println(e.toString());
59: }
60: }
61:
62: public boolean execute(Insert query) {
63: boolean success = false;
64: DbQueryManager manager = setupQuery(query.getDatasource());
65:
66: try {
67: // try to execute insert statement
68: if (manager.executeUpdate(query) > 0) {
69: success = true;
70: }
71: } catch (DatabaseException e) {
72: throw new RuntimeException(e);
73: } finally {
74: cleanupQuery(manager);
75: }
76:
77: return success;
78: }
79:
80: public boolean execute(Insert query,
81: DbPreparedStatementHandler handler) {
82: boolean success = false;
83: DbQueryManager manager = setupQuery(query.getDatasource());
84:
85: try {
86: if (manager.executeUpdate(query, handler) > 0) {
87: success = true;
88: }
89: } catch (DatabaseException e) {
90: throw new RuntimeException(e);
91: } finally {
92: cleanupQuery(manager);
93: }
94:
95: return success;
96: }
97: }
|