/** * Gets keys of the repository specified by the given repository name. * * @param repositoryName the given repository name * @return keys */ public static List<FieldDefinition> getKeys(final String repositoryName) { final List<RepositoryDefinition> repositoryDefs = getRepositoryDefinitions(); for (final RepositoryDefinition repositoryDefinition : repositoryDefs) { if (StringUtils.equals(repositoryName, repositoryDefinition.getName())) { return repositoryDefinition.getKeys(); } } return null; }
repositoryObject = repositoritArray.getJSONObject(i); final RepositoryDefinition repositoryDefinition = new RepositoryDefinition(); repositoryDefinitions.add(repositoryDefinition); repositoryDefinition.setName(repositoryObject.getString(NAME)); repositoryDefinition.setDescription(repositoryObject.optString(DESCRIPTION)); final List<FieldDefinition> keys = new ArrayList(); repositoryDefinition.setKeys(keys); final JSONArray keysJsonArray = repositoryObject.getJSONArray(KEYS); FieldDefinition definition;
@Override protected void createTableHead(final StringBuilder createTableSql, final RepositoryDefinition repositoryDefinition) { /* IF NOT EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[tablename]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) CREATE TABLE [dbo].[tablename] ( columns specification ); */ createTableSql.append("IF NOT EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[").append( repositoryDefinition.getName()).append("]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) "); }
@Override protected void createTableBody(final StringBuilder createTableSql, final RepositoryDefinition repositoryDefinition) { final List<FieldDefinition> keyDefinitionList = new ArrayList<>(); final List<FieldDefinition> fieldDefinitions = repositoryDefinition.getKeys(); for (FieldDefinition fieldDefinition : fieldDefinitions) { final String type = fieldDefinition.getType(); if (type == null) { throw new RuntimeException("the type of fieldDefinitions should not be null"); } final Mapping mapping = getJdbcTypeMapping().get(type); if (mapping != null) { createTableSql.append(mapping.toDataBaseSting(fieldDefinition)).append(", "); if (fieldDefinition.getIsKey()) { keyDefinitionList.add(fieldDefinition); } } else { throw new RuntimeException("the type[" + fieldDefinition.getType() + "] is not register for mapping "); } } if (keyDefinitionList.size() < 0) { throw new RuntimeException("no key talbe is not allow"); } else { createTableSql.append(createKeyDefinition(keyDefinitionList)); } }
@Override protected void createTableHead(final StringBuilder createTableSql, final RepositoryDefinition repositoryDefinition) { createTableSql.append("CREATE TABLE IF NOT EXISTS ").append(repositoryDefinition.getName()).append("("); }
@Override protected void createTableBody(final StringBuilder createTableSql, final RepositoryDefinition repositoryDefinition) { final List<FieldDefinition> keyDefinitionList = new ArrayList<>(); final List<FieldDefinition> fieldDefinitions = repositoryDefinition.getKeys(); for (FieldDefinition fieldDefinition : fieldDefinitions) { final String type = fieldDefinition.getType(); if (type == null) { throw new RuntimeException("the type of fieldDefinitions should not be null"); } final Mapping mapping = getJdbcTypeMapping().get(type); if (mapping != null) { createTableSql.append(mapping.toDataBaseSting(fieldDefinition)).append(", "); if (fieldDefinition.getIsKey()) { keyDefinitionList.add(fieldDefinition); } } else { throw new RuntimeException("the type[" + fieldDefinition.getType() + "] is not register for mapping "); } } if (keyDefinitionList.size() < 0) { throw new RuntimeException("no key talbe is not allow"); } else { createTableSql.append(createKeyDefinition(keyDefinitionList)); } }
/** * Gets keys of the repository specified by the given repository name. * * @param repositoryName the given repository name * @return keys */ public static List<FieldDefinition> getKeys(final String repositoryName) { final List<RepositoryDefinition> repositoryDefs = getRepositoryDefinitions(); for (final RepositoryDefinition repositoryDefinition : repositoryDefs) { if (StringUtils.equals(repositoryName, repositoryDefinition.getName())) { return repositoryDefinition.getKeys(); } } return null; }
@Override protected void createTableHead(final StringBuilder createTableSql, final RepositoryDefinition repositoryDefinition) { createTableSql.append("CREATE TABLE ").append(repositoryDefinition.getName()).append("("); }
@Override protected void createTableBody(final StringBuilder createTableSql, final RepositoryDefinition repositoryDefinition) { final List<FieldDefinition> keyDefinitionList = new ArrayList<>(); for (FieldDefinition fieldDefinition : repositoryDefinition.getKeys()) { final String type = fieldDefinition.getType(); if (type == null) { throw new RuntimeException("the type of fieldDefinitions should not be null"); } final Mapping mapping = getJdbcTypeMapping().get(type); if (mapping != null) { createTableSql.append(mapping.toDataBaseSting(fieldDefinition)).append(", "); if (fieldDefinition.getIsKey()) { keyDefinitionList.add(fieldDefinition); } } else { throw new RuntimeException("the type[" + fieldDefinition.getType() + "] is not register for mapping "); } } if (keyDefinitionList.size() < 0) { throw new RuntimeException("no key talbe is not allow"); } else { createTableSql.append(createKeyDefinition(keyDefinitionList)); } }
repositoryObject = repositoritArray.getJSONObject(i); final RepositoryDefinition repositoryDefinition = new RepositoryDefinition(); repositoryDefinitions.add(repositoryDefinition); repositoryDefinition.setName(repositoryObject.getString(NAME)); repositoryDefinition.setDescription(repositoryObject.optString(DESCRIPTION)); final List<FieldDefinition> keys = new ArrayList(); repositoryDefinition.setKeys(keys); final JSONArray keysJsonArray = repositoryObject.getJSONArray(KEYS); FieldDefinition definition;
@Override protected void createTableHead(final StringBuilder createTableSql, final RepositoryDefinition repositoryDefinition) { createTableSql.append("CREATE TABLE IF NOT EXISTS ").append(repositoryDefinition.getName()).append("("); }
@Override protected void createTableBody(final StringBuilder createTableSql, final RepositoryDefinition repositoryDefinition) { final List<FieldDefinition> keyDefinitionList = new ArrayList<>(); final List<FieldDefinition> fieldDefinitions = repositoryDefinition.getKeys(); for (FieldDefinition fieldDefinition : fieldDefinitions) { final String type = fieldDefinition.getType(); if (type == null) { throw new RuntimeException("the type of fieldDefinitions should not be null"); } final Mapping mapping = getJdbcTypeMapping().get(type); if (null != mapping) { createTableSql.append(mapping.toDataBaseSting(fieldDefinition)); final String description = fieldDefinition.getDescription(); if (StringUtils.isNotBlank(description)) { createTableSql.append(" COMMENT '" + description + "'"); } createTableSql.append(", "); if (fieldDefinition.getIsKey()) { keyDefinitionList.add(fieldDefinition); } } else { throw new RuntimeException("The type [" + fieldDefinition.getType() + "] is not register for mapping"); } } if (keyDefinitionList.size() < 0) { throw new RuntimeException("Table must have a primary key"); } else { createTableSql.append(createKeyDefinition(keyDefinitionList)); } }
/** * Initializes all tables from repository.json. * * @return List<CreateTableResult> */ public static List<CreateTableResult> initAllTables() { final List<CreateTableResult> ret = new ArrayList<>(); final List<RepositoryDefinition> repositoryDefs = getRepositoryDefinitions(); boolean isSuccess = false; for (final RepositoryDefinition repositoryDef : repositoryDefs) { try { isSuccess = JdbcFactory.createJdbcFactory().createTable(repositoryDef); } catch (final SQLException e) { LOGGER.log(Level.ERROR, "Creates table [" + repositoryDef.getName() + "] error", e); } ret.add(new CreateTableResult(repositoryDef.getName(), isSuccess)); } return ret; }
/** * Initializes all tables from repository.json. * * @return List<CreateTableResult> */ public static List<CreateTableResult> initAllTables() { final List<CreateTableResult> ret = new ArrayList<>(); final List<RepositoryDefinition> repositoryDefs = getRepositoryDefinitions(); boolean isSuccess = false; for (final RepositoryDefinition repositoryDef : repositoryDefs) { try { isSuccess = JdbcFactory.createJdbcFactory().createTable(repositoryDef); } catch (final SQLException e) { LOGGER.log(Level.ERROR, "Creates table [" + repositoryDef.getName() + "] error", e); } ret.add(new CreateTableResult(repositoryDef.getName(), isSuccess)); } return ret; }