(TODO)
(TODO)
例 4.1. 簡単なテーブルを含むモデルの構築
// initialize Jiemamy
Jiemamy jiemamy = Jiemamy.newInstance();
JiemamyFactory factory = jiemamy.getFactory();
RootModel rootModel = factory.getRootModel();
// set Dialect to ues and get instance
RootModelUtil.setDialect(rootModel, MySqlDialect.class);
Dialect dialect = rootModel.findDialect();
// create TABLE and set name
TableModel tableModel = factory.newModel(TableModel.class);
tableModel.setName("T_USER");
// create COLUMN and set name
ColumnModel columnId = factory.newModel(ColumnModel.class);
columnId.setName("ID");
// create DataType of INTEGER and set it to column
BuiltinDataTypeMold mold1 = dialect.findDataTypeMold(DataTypeCategory.INTEGER);
BuiltinDataType dataType1 = factory.newDataType(mold1);
columnId.setDataType(dataType1);
// add COLUMN to TABLE
tableModel.getAttributes().add(columnId);
// create COLUMN and set name
ColumnModel columnName = factory.newModel(ColumnModel.class);
columnName.setName("NAME");
// create DataType of VARCHAR(32) and set it to column
BuiltinDataTypeMold mold2 = dialect.findDataTypeMold(DataTypeCategory.VARCHAR);
BuiltinDataType dataType2 = factory.newDataType(mold2);
dataType2.getAdapter(SizedDataTypeAdapter.class).setSize(36);
columnName.setDataType(dataType2);
// add COLUMN to TABLE
tableModel.getAttributes().add(columnName);
// add TABLE to RootModel
rootModel.getEntities().add(tableModel);
...
このように、Jiemamyモデルは、主に以下のような手順を繰り返して構築していきます。
JiemamyFactoryから新しいモデルインスタンスを取得する。
モデルのプロパティにsetter等を使って値を設定する。この値はさらにJiemamyFactoryで生成するものかもしれません。
1で生成したモデルを、親となるモデルにsetter等を使って設定する。