diff options
author | Eike Stepper | 2007-08-16 19:40:05 +0000 |
---|---|---|
committer | Eike Stepper | 2007-08-16 19:40:05 +0000 |
commit | 2fbb584822d382ee8be2ab5d3757683beb9b8e8e (patch) | |
tree | 8ed753ab422b47d2bf3165c66df53842f2c68674 /plugins/org.eclipse.net4j.db/src/org/eclipse | |
parent | 18f8c4427355e1b2a0782be90a4a674c555cd4c1 (diff) | |
download | cdo-2fbb584822d382ee8be2ab5d3757683beb9b8e8e.tar.gz cdo-2fbb584822d382ee8be2ab5d3757683beb9b8e8e.tar.xz cdo-2fbb584822d382ee8be2ab5d3757683beb9b8e8e.zip |
*** empty log message ***
Diffstat (limited to 'plugins/org.eclipse.net4j.db/src/org/eclipse')
3 files changed, 37 insertions, 11 deletions
diff --git a/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/db/IDBAdapter.java b/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/db/IDBAdapter.java index f9d6c14ea1..f8ac2afe83 100644 --- a/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/db/IDBAdapter.java +++ b/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/db/IDBAdapter.java @@ -13,6 +13,7 @@ package org.eclipse.net4j.db; import org.eclipse.net4j.internal.db.DBAdapterRegistry; import org.eclipse.net4j.util.registry.IRegistry; +import java.sql.Connection; import java.sql.Driver; import java.sql.Statement; @@ -29,5 +30,7 @@ public interface IDBAdapter public Driver getJDBCDriver(); - public void createTable(IDBTable table, Statement statement); + public void createTables(IDBTable[] tables, Connection connection) throws DBException; + + public void createTable(IDBTable table, Statement statement) throws DBException; } diff --git a/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/internal/db/DBAdapter.java b/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/internal/db/DBAdapter.java index 4fdcaa4d3f..b00a56aa36 100644 --- a/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/internal/db/DBAdapter.java +++ b/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/internal/db/DBAdapter.java @@ -12,11 +12,13 @@ package org.eclipse.net4j.internal.db; import org.eclipse.net4j.db.DBException; import org.eclipse.net4j.db.DBType; +import org.eclipse.net4j.db.DBUtil; import org.eclipse.net4j.db.IDBAdapter; import org.eclipse.net4j.db.IDBTable; import org.eclipse.net4j.internal.db.bundle.OM; import org.eclipse.net4j.internal.util.om.trace.ContextTracer; +import java.sql.Connection; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; @@ -49,7 +51,29 @@ public abstract class DBAdapter implements IDBAdapter return version; } - public void createTable(IDBTable table, Statement statement) + public void createTables(IDBTable[] tables, Connection connection) throws DBException + { + Statement statement = null; + + try + { + statement = connection.createStatement(); + for (IDBTable table : tables) + { + createTable(table, statement); + } + } + catch (SQLException ex) + { + throw new DBException(ex); + } + finally + { + DBUtil.close(statement); + } + } + + public void createTable(IDBTable table, Statement statement) throws DBException { try { @@ -143,7 +167,7 @@ public abstract class DBAdapter implements IDBAdapter throw new IllegalArgumentException("Unknown type: " + type); } - protected void validateTable(DBTable table, Statement statement) + protected void validateTable(DBTable table, Statement statement) throws DBException { try { diff --git a/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/internal/db/DBSchema.java b/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/internal/db/DBSchema.java index d259590e3a..a2ca7c65be 100644 --- a/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/internal/db/DBSchema.java +++ b/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/internal/db/DBSchema.java @@ -14,12 +14,12 @@ import org.eclipse.net4j.db.DBException; import org.eclipse.net4j.db.DBUtil; import org.eclipse.net4j.db.IDBAdapter; import org.eclipse.net4j.db.IDBSchema; +import org.eclipse.net4j.db.IDBTable; import javax.sql.DataSource; import java.sql.Connection; import java.sql.SQLException; -import java.sql.Statement; import java.util.HashMap; import java.util.Map; @@ -80,16 +80,11 @@ public class DBSchema implements IDBSchema public void create(IDBAdapter dbAdapter, DataSource dataSource) { Connection connection = null; - Statement statement = null; try { connection = dataSource.getConnection(); - statement = connection.createStatement(); - for (DBTable table : tables.values()) - { - dbAdapter.createTable(table, statement); - } + create(dbAdapter, connection); } catch (SQLException ex) { @@ -97,11 +92,15 @@ public class DBSchema implements IDBSchema } finally { - DBUtil.close(statement); DBUtil.close(connection); } } + public void create(IDBAdapter dbAdapter, Connection connection) + { + dbAdapter.createTables(tables.values().toArray(new IDBTable[tables.size()]), connection); + } + @Override public String toString() { |