public String generateDatabaseName() { // prompts user for database name String dbNameDefault = "MySQLDB"; // String databaseName = ""; do { databaseName = (String) JOptionPane.showInputDialog( null, "Enter the database name:", "Database Name", JOptionPane.PLAIN_MESSAGE, null, null, dbNameDefault); if (databaseName == null) { DatabaseConvertGUI.setReadSuccess(false); return ""; } if (databaseName.equals("")) { JOptionPane.showMessageDialog(null, "You must select a name for your database."); } } while (databaseName.equals("")); return databaseName; }
public void createDDL() { DatabaseConvertGUI.setReadSuccess(true); databaseName = generateDatabaseName(); sb.append("CREATE DATABASE " + databaseName + ";\r\n"); sb.append("USE " + databaseName + ";\r\n"); for (int boundCount = 0; boundCount <= maxBound; boundCount++) { // process tables in order from least dependent (least number of bound // tables) to most dependent for (int tableCount = 0; tableCount < numBoundTables.length; tableCount++) { // step through list of tables if (numBoundTables[tableCount] == boundCount) { // sb.append("CREATE TABLE " + tables[tableCount].getName() + " (\r\n"); int[] nativeFields = tables[tableCount].getNativeFieldsArray(); int[] relatedFields = tables[tableCount].getRelatedFieldsArray(); boolean[] primaryKey = new boolean[nativeFields.length]; int numPrimaryKey = 0; int numForeignKey = 0; for (int nativeFieldCount = 0; nativeFieldCount < nativeFields.length; nativeFieldCount++) { // print out the fields DatabaseField currentField = getField(nativeFields[nativeFieldCount]); sb.append( "\t" + currentField.getName() + " " + strDataType[currentField.getDataType()]); if (currentField.getDataType() == 0) { // varchar sb.append( "(" + currentField.getVarcharValue() + ")"); // append varchar length in () if data type is varchar } if (currentField.getDisallowNull()) { sb.append(" NOT NULL"); } if (!currentField.getDefaultValue().equals("")) { if (currentField.getDataType() == 1) { // boolean data type sb.append(" DEFAULT " + convertStrBooleanToInt(currentField.getDefaultValue())); } else { // any other data type sb.append(" DEFAULT " + currentField.getDefaultValue()); } } if (currentField.getIsPrimaryKey()) { primaryKey[nativeFieldCount] = true; numPrimaryKey++; } else { primaryKey[nativeFieldCount] = false; } if (currentField.getFieldBound() != 0) { numForeignKey++; } sb.append(",\r\n"); // end of field } if (numPrimaryKey > 0) { // table has primary key(s) sb.append("CONSTRAINT " + tables[tableCount].getName() + "_PK PRIMARY KEY ("); for (int i = 0; i < primaryKey.length; i++) { if (primaryKey[i]) { sb.append(getField(nativeFields[i]).getName()); numPrimaryKey--; if (numPrimaryKey > 0) { sb.append(", "); } } } sb.append(")"); if (numForeignKey > 0) { sb.append(","); } sb.append("\r\n"); } if (numForeignKey > 0) { // table has foreign keys int currentFK = 1; for (int i = 0; i < relatedFields.length; i++) { if (relatedFields[i] != 0) { sb.append( "CONSTRAINT " + tables[tableCount].getName() + "_FK" + currentFK + " FOREIGN KEY(" + getField(nativeFields[i]).getName() + ") REFERENCES " + getTable(getField(nativeFields[i]).getTableBound()).getName() + "(" + getField(relatedFields[i]).getName() + ")"); if (currentFK < numForeignKey) { sb.append(",\r\n"); } currentFK++; } } sb.append("\r\n"); } sb.append(");\r\n\r\n"); // end of table } } } }