use of com.github.drinkjava2.jdialects.model.TableModel in project jDialects by drinkjava2.
the class DDLTest method tableGeneratorModel.
private static TableModel tableGeneratorModel() {
// tableGenerator
TableModel t = new TableModel("testTable");
t.tableGenerator("tbgen1", "tb1", "pkcol", "valcol", "pkval", 1, 10);
t.tableGenerator("tbgen2", "tb1", "pkcol2", "valcol", "pkval", 1, 10);
t.column("i1").INTEGER().pkey().idGenerator("tbgen1");
t.column("i2").INTEGER().pkey().idGenerator("tbgen2");
return t;
}
use of com.github.drinkjava2.jdialects.model.TableModel in project jDialects by drinkjava2.
the class DDLTest method testCompondPkey.
@Test
public void testCompondPkey() {
// Compound PKEY
TableModel t = new TableModel("testTable");
t.column("i4").INTEGER().pkey().notNull().defaultValue("1");
t.column("l5").LONG().pkey();
t.column("s6").SHORT();
printAllDialectsDDLs(t);
testOnCurrentRealDatabase(t);
}
use of com.github.drinkjava2.jdialects.model.TableModel in project jDialects by drinkjava2.
the class DDLTest method tableCheckModel.
private static TableModel tableCheckModel() {
// table check
TableModel t = new TableModel("testTable");
t.check("s2>10");
t.column("s1").STRING(20).notNull();
t.column("s2").STRING(20);
return t;
}
use of com.github.drinkjava2.jdialects.model.TableModel in project jDialects by drinkjava2.
the class Db2ModelsTest method testDb2Model.
@Test
public void testDb2Model() {
TableModel t = new TableModel("testTable");
t.column("id").LONG().pkey();
t.column("b1").BOOLEAN();
t.column("d2").DOUBLE();
t.column("f3").FLOAT(5);
t.column("i4").INTEGER();
t.column("l5").LONG();
t.column("s6").SHORT();
t.column("b7").BIGDECIMAL(10, 2);
t.column("s8").STRING(20);
t.column("d9").DATE();
t.column("t10").TIME();
t.column("t11").TIMESTAMP();
t.column("v12").VARCHAR(300);
String[] ddls = guessedDialect.toDropDDL(t);
quietExecuteDDLs(ddls);
ddls = guessedDialect.toCreateDDL(t);
executeDDLs(ddls);
Connection con = null;
TableModel[] tableModels = null;
try {
con = ds.getConnection();
tableModels = TableModelUtils.db2Models(con, guessedDialect);
for (TableModel tableModel : tableModels) {
List<ColumnModel> columns = tableModel.getColumns();
System.out.println(tableModel.getTableName());
for (ColumnModel columnModel : columns) {
System.out.print(columnModel.getColumnName() + ",");
System.out.print(columnModel.getColumnType() + ",");
System.out.print(columnModel.getLength() + ",");
System.out.print(columnModel.getPrecision() + ",");
System.out.print(columnModel.getScale() + "\r");
}
System.out.println();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (con != null)
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
use of com.github.drinkjava2.jdialects.model.TableModel in project jDialects by drinkjava2.
the class DDLCreateUtils method toCreateDDL.
/**
* Transfer tables to DDL by given dialect and without format it, if want get a
* formatted DDL, use DDLFormatter.format(DDLs) method to format it
*/
public static String[] toCreateDDL(Dialect dialect, TableModel... tables) {
// Store mixed DDL String, TableGen Object, SequenceGen Object ...
List<Object> objectResultList = new ArrayList<Object>();
for (TableModel table : tables) transferTableToObjectList(dialect, table, objectResultList);
boolean hasAutoIdGenerator = false;
for (TableModel table : tables) {
for (ColumnModel column : table.getColumns()) if (GenerationType.AUTO.equals(column.getIdGenerationType())) {
hasAutoIdGenerator = true;
break;
}
for (IdGenerator idGens : table.getIdGenerators()) if (hasAutoIdGenerator || idGens.dependOnAutoIdGenerator()) {
hasAutoIdGenerator = true;
break;
}
}
List<String> stringResultList = new ArrayList<String>();
List<TableIdGenerator> tbGeneratorList = new ArrayList<TableIdGenerator>();
List<SequenceIdGenerator> sequenceList = new ArrayList<SequenceIdGenerator>();
List<FKeyModel> fKeyConstraintList = new ArrayList<FKeyModel>();
for (Object strOrObj : objectResultList) {
if (!StrUtils.isEmpty(strOrObj)) {
if (strOrObj instanceof String)
stringResultList.add((String) strOrObj);
else if (strOrObj instanceof TableIdGenerator)
tbGeneratorList.add((TableIdGenerator) strOrObj);
else if (strOrObj instanceof SequenceIdGenerator)
sequenceList.add((SequenceIdGenerator) strOrObj);
else if (strOrObj instanceof FKeyModel)
fKeyConstraintList.add((FKeyModel) strOrObj);
}
}
if (hasAutoIdGenerator) {
IdGenerator realIdGen = AutoIdGenerator.INSTANCE.getSequenceOrTableIdGenerator(dialect);
if (realIdGen instanceof TableIdGenerator)
tbGeneratorList.add((TableIdGenerator) realIdGen);
else if (realIdGen instanceof SequenceIdGenerator)
sequenceList.add((SequenceIdGenerator) realIdGen);
else
throw new DialectException("Unknow exception happen for realIdGen, please report this bug");
}
buildSequenceDDL(dialect, stringResultList, sequenceList);
buildTableGeneratorDDL(dialect, stringResultList, tbGeneratorList);
outputFKeyConstraintDDL(dialect, stringResultList, fKeyConstraintList);
String[] result = stringResultList.toArray(new String[stringResultList.size()]);
if (Dialect.getGlobalAllowShowSql())
Dialect.logger.info("Create DDL:\r" + StrUtils.arrayToString(result, "\r"));
return result;
}
Aggregations