Release 0.0.6: Drop column Statements, refactoring: flexible array Parameter instead Collections.

master
Markus Kreth 8 years ago
parent 71988fc3e3
commit e2a5228491
  1. 2
      .gitignore
  2. 2
      pom.xml
  3. 26
      src/main/java/de/kreth/dbmanager/DbManager.java
  4. 6
      src/test/java/de/kreth/dbmanager/DbManagerAddColumnTest.java

2
.gitignore vendored

@ -1,3 +1,5 @@
/target/ /target/
.classpath .classpath
\.settings/ \.settings/
/bin

@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>de.kreth</groupId> <groupId>de.kreth</groupId>
<artifactId>databasedefinition</artifactId> <artifactId>databasedefinition</artifactId>
<version>0.0.6-SNAPSHOT</version> <version>0.0.6</version>
<name>DatabaseDefinition</name> <name>DatabaseDefinition</name>
<description>Database creation and definition framework</description> <description>Database creation and definition framework</description>

@ -164,7 +164,7 @@ public class DbManager {
} }
} }
public static String createSqlAddColumns(TableDefinition current, Collection<ColumnDefinition> columnsToAdd) { public static String createSqlAddColumns(TableDefinition current, ColumnDefinition... columnsToAdd) {
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
sql.append("ALTER TABLE ").append(current.getTableName()); sql.append("ALTER TABLE ").append(current.getTableName());
@ -187,4 +187,28 @@ public class DbManager {
sql.append(";"); sql.append(";");
return sql.toString(); 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();
}
} }

@ -19,9 +19,7 @@ public class DbManagerAddColumnTest {
TableDefinition def = new TableDefinition("testtable", new ArrayList<ColumnDefinition>()); TableDefinition def = new TableDefinition("testtable", new ArrayList<ColumnDefinition>());
List<ColumnDefinition> columns = new ArrayList<ColumnDefinition>(); String sql = DbManager.createSqlAddColumns(def, new ColumnDefinition(DataType.DATETIME, "deleted", " DEFAULT null"));
columns.add(new ColumnDefinition(DataType.DATETIME, "deleted", " DEFAULT null"));
String sql = DbManager.createSqlAddColumns(def, columns);
assertEquals("ALTER TABLE testtable\n\tADD COLUMN deleted DATETIME DEFAULT null;", sql); assertEquals("ALTER TABLE testtable\n\tADD COLUMN deleted DATETIME DEFAULT null;", sql);
} }
@ -33,7 +31,7 @@ public class DbManagerAddColumnTest {
List<ColumnDefinition> columns = new ArrayList<ColumnDefinition>(); List<ColumnDefinition> columns = new ArrayList<ColumnDefinition>();
columns.add(new ColumnDefinition(DataType.DATETIME, "deleted", " DEFAULT null")); columns.add(new ColumnDefinition(DataType.DATETIME, "deleted", " DEFAULT null"));
columns.add(new ColumnDefinition(DataType.VARCHAR25, "theType")); columns.add(new ColumnDefinition(DataType.VARCHAR25, "theType"));
String sql = DbManager.createSqlAddColumns(def, columns); String sql = DbManager.createSqlAddColumns(def, columns.toArray(new ColumnDefinition[]{}));
assertEquals( assertEquals(
"ALTER TABLE testtable\n\tADD COLUMN deleted DATETIME DEFAULT null,\n\tADD COLUMN theType VARCHAR(25);", "ALTER TABLE testtable\n\tADD COLUMN deleted DATETIME DEFAULT null,\n\tADD COLUMN theType VARCHAR(25);",
sql); sql);

Loading…
Cancel
Save