From e2a522849151ecf156fa2efddc119063d0fa08fa Mon Sep 17 00:00:00 2001 From: Markus Kreth Date: Fri, 15 Dec 2017 18:46:31 +0000 Subject: [PATCH] Release 0.0.6: Drop column Statements, refactoring: flexible array Parameter instead Collections. --- .gitignore | 2 ++ pom.xml | 2 +- .../java/de/kreth/dbmanager/DbManager.java | 26 ++++++++++++++++++- .../dbmanager/DbManagerAddColumnTest.java | 6 ++--- 4 files changed, 30 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 458c8f8..d6fdeb3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ /target/ .classpath \.settings/ + +/bin diff --git a/pom.xml b/pom.xml index 7213b62..1f694b4 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 de.kreth databasedefinition - 0.0.6-SNAPSHOT + 0.0.6 DatabaseDefinition Database creation and definition framework diff --git a/src/main/java/de/kreth/dbmanager/DbManager.java b/src/main/java/de/kreth/dbmanager/DbManager.java index ae7d454..879ec32 100644 --- a/src/main/java/de/kreth/dbmanager/DbManager.java +++ b/src/main/java/de/kreth/dbmanager/DbManager.java @@ -164,7 +164,7 @@ public class DbManager { } } - public static String createSqlAddColumns(TableDefinition current, Collection columnsToAdd) { + public static String createSqlAddColumns(TableDefinition current, ColumnDefinition... columnsToAdd) { StringBuilder sql = new StringBuilder(); sql.append("ALTER TABLE ").append(current.getTableName()); @@ -187,4 +187,28 @@ public class DbManager { sql.append(";"); return sql.toString(); } + + public static String createSqlDropColumns(TableDefinition current, ColumnDefinition... columnsToDrop) { + + StringBuilder sql = new StringBuilder(); + sql.append("ALTER TABLE ").append(current.getTableName()); + + boolean first = true; + for (ColumnDefinition col : columnsToDrop) { + + if (!first) { + sql.append(","); + } + + first = false; + sql.append("\n\tDROP COLUMN ").append(col.getColumnName()).append(" "); + appendType(sql, col); + + if (col.getColumnParameters() != null && !col.getColumnParameters().isEmpty()) { + sql.append(" ").append(col.getColumnParameters()); + } + } + sql.append(";"); + return sql.toString(); + } } diff --git a/src/test/java/de/kreth/dbmanager/DbManagerAddColumnTest.java b/src/test/java/de/kreth/dbmanager/DbManagerAddColumnTest.java index b9bf914..fc3d830 100644 --- a/src/test/java/de/kreth/dbmanager/DbManagerAddColumnTest.java +++ b/src/test/java/de/kreth/dbmanager/DbManagerAddColumnTest.java @@ -19,9 +19,7 @@ public class DbManagerAddColumnTest { TableDefinition def = new TableDefinition("testtable", new ArrayList()); - List columns = new ArrayList(); - columns.add(new ColumnDefinition(DataType.DATETIME, "deleted", " DEFAULT null")); - String sql = DbManager.createSqlAddColumns(def, columns); + String sql = DbManager.createSqlAddColumns(def, new ColumnDefinition(DataType.DATETIME, "deleted", " DEFAULT null")); assertEquals("ALTER TABLE testtable\n\tADD COLUMN deleted DATETIME DEFAULT null;", sql); } @@ -33,7 +31,7 @@ public class DbManagerAddColumnTest { List columns = new ArrayList(); columns.add(new ColumnDefinition(DataType.DATETIME, "deleted", " DEFAULT null")); columns.add(new ColumnDefinition(DataType.VARCHAR25, "theType")); - String sql = DbManager.createSqlAddColumns(def, columns); + String sql = DbManager.createSqlAddColumns(def, columns.toArray(new ColumnDefinition[]{})); assertEquals( "ALTER TABLE testtable\n\tADD COLUMN deleted DATETIME DEFAULT null,\n\tADD COLUMN theType VARCHAR(25);", sql);