com.gitee.hengboy.builder.core.database.model.Column Java Examples
The following examples show how to use
com.gitee.hengboy.builder.core.database.model.Column.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: AbstractDataBase.java From code-builder with Apache License 2.0 | 6 votes |
/** * 获取表内的主键列表 * * @param tableName 表名 * @return 主键列表 */ public List<Column> getPrimaryKeys(String tableName) { try { // 获取表内的主键列表 ResultSet resultSet = connection.getMetaData().getPrimaryKeys(null, null, tableName); List<Column> primaryKeys = new ArrayList<Column>(); while (resultSet.next()) { // 获取主键的列名 String columnName = resultSet.getString(TableMetaDataEnum.COLUMN_NAME.getValue()); // 获取主键列的详细信息 ResultSet columnResultSet = connection.getMetaData().getColumns(null, null, tableName, columnName); if (columnResultSet.next()) { // 添加主键信息 primaryKeys.add(getColumn(columnResultSet, true)); } } return primaryKeys; } catch (SQLException e) { e.printStackTrace(); } throw new CodeBuilderException(ErrorEnum.NOT_GET_PRIMARY_KEYS, tableName); }
Example #2
Source File: VariableExpression.java From beihu-boot with Apache License 2.0 | 5 votes |
/** * init variable map * * @param wrapper class builder wrapper * @param codegenSettingJson codegen setting json */ public static CodegenSetting initVariable(ClassBuilderWrapper wrapper, String codegenSettingJson) { CodegenTemplateVariable.VARIABLES.put(CodegenTemplateVariable.NOW, DateFormatTools.formatTime(System.currentTimeMillis(), DateFormatTools.YYYY_MM_DD_HH_MM_SS)); CodegenTemplateVariable.VARIABLES.put(CodegenTemplateVariable.DESC, wrapper.getTable().getRemark()); CodegenTemplateVariable.VARIABLES.put(CodegenTemplateVariable.ENTITY_NAME, wrapper.getTableCamelName()); CodegenTemplateVariable.VARIABLES.put(CodegenTemplateVariable.ENTITY_POSITION, wrapper.getPackageName() + EnhanceCodegenConstant.POINT + wrapper.getTableCamelName()); List<Column> pks = wrapper.getTable().getPrimaryKeys(); if (!ObjectUtils.isEmpty(pks) && pks.size() > 0) { Column pk = pks.get(0); CodegenTemplateVariable.VARIABLES.put(CodegenTemplateVariable.ENTITY_ID_TYPE, pk.getJavaType()); } // parse CodegenSetting CodegenSetting codegenSetting = JSON.parseObject(codegenSettingJson, CodegenSetting.class); List<Template> templates = codegenSetting.getTemplates(); if (!ObjectUtils.isEmpty(templates)) { templates.stream().forEach(template -> { // entity name // template java suffix String templateName = String.format("%s%s", wrapper.getTableCamelName(), template.getJavaSuffix()); // entity package name // . // template package // . // template name String templatePosition = String.format("%s%s%s%s%s", wrapper.getPackageName(), EnhanceCodegenConstant.POINT, template.getPackageName(), EnhanceCodegenConstant.POINT, templateName); CodegenTemplateVariable.VARIABLES.put(String.format(TEMPLATE_PACKAGE_NAME, template.getPackageName()), templateName); CodegenTemplateVariable.VARIABLES.put(String.format(TEMPLATE_PACKAGE_POSITION, template.getPackageName()), templatePosition); }); } // replace variable codegenSettingJson = convertVariable(codegenSettingJson); // parse CodegenSetting return JSON.parseObject(codegenSettingJson, CodegenSetting.class); }
Example #3
Source File: VariableExpression.java From api-boot with Apache License 2.0 | 5 votes |
/** * init variable map * * @param wrapper class builder wrapper * @param codegenSettingJson codegen setting json */ public static CodegenSetting initVariable(ClassBuilderWrapper wrapper, String codegenSettingJson) { CodegenTemplateVariable.VARIABLES.put(CodegenTemplateVariable.NOW, DateFormatTools.formatTime(System.currentTimeMillis(), DateFormatTools.YYYY_MM_DD_HH_MM_SS)); CodegenTemplateVariable.VARIABLES.put(CodegenTemplateVariable.DESC, wrapper.getTable().getRemark()); CodegenTemplateVariable.VARIABLES.put(CodegenTemplateVariable.ENTITY_NAME, wrapper.getTableCamelName()); CodegenTemplateVariable.VARIABLES.put(CodegenTemplateVariable.ENTITY_POSITION, wrapper.getPackageName() + EnhanceCodegenConstant.POINT + wrapper.getTableCamelName()); List<Column> pks = wrapper.getTable().getPrimaryKeys(); if (!ObjectUtils.isEmpty(pks) && pks.size() > 0) { Column pk = pks.get(0); CodegenTemplateVariable.VARIABLES.put(CodegenTemplateVariable.ENTITY_ID_TYPE, pk.getJavaType()); } // parse CodegenSetting CodegenSetting codegenSetting = JSON.parseObject(codegenSettingJson, CodegenSetting.class); List<Template> templates = codegenSetting.getTemplates(); if (!ObjectUtils.isEmpty(templates)) { templates.stream().forEach(template -> { // entity name // template java suffix String templateName = String.format("%s%s", wrapper.getTableCamelName(), template.getJavaSuffix()); // entity package name // . // template package // . // template name String templatePosition = String.format("%s%s%s%s%s", wrapper.getPackageName(), EnhanceCodegenConstant.POINT, template.getPackageName(), EnhanceCodegenConstant.POINT, templateName); CodegenTemplateVariable.VARIABLES.put(String.format(TEMPLATE_PACKAGE_NAME, template.getPackageName()), templateName); CodegenTemplateVariable.VARIABLES.put(String.format(TEMPLATE_PACKAGE_POSITION, template.getPackageName()), templatePosition); }); } // replace variable codegenSettingJson = convertVariable(codegenSettingJson); // parse CodegenSetting return JSON.parseObject(codegenSettingJson, CodegenSetting.class); }
Example #4
Source File: AbstractDataBase.java From code-builder with Apache License 2.0 | 5 votes |
/** * 获取表内的所有列 * * @param tableName 表名 * @return 数据列列表 */ public List<Column> getColumns(String tableName) { List<Column> columns = new ArrayList<Column>(); try { // 获取列信息 ResultSet resultSet = getConnection().getMetaData().getColumns(null, null, tableName, "%"); while (resultSet.next()) { columns.add(getColumn(resultSet, false)); } return columns; } catch (SQLException e) { e.printStackTrace(); } throw new CodeBuilderException(ErrorEnum.NOT_GET_COLUMN, tableName); }
Example #5
Source File: DynamicEntityClassBuilder.java From beihu-boot with Apache License 2.0 | 4 votes |
/** * generator dynamic entity * * @return */ @Override public String getClassContent() { try { StringWriter stringWriter = new StringWriter(); CodeWriter writer = new JavaWriter(stringWriter); // current table Table table = getWrapper().getTable(); // package writer.packageDecl(getWrapper().getPackageName()); writer.imports(ColumnExpression.class, TableExpression.class); // formatter super class name String superClassName = String.format(TABLE_EXPRESSION, getEntityName(getWrapper().getTableCamelName())); // java doc writer.javadoc(table.getRemark(), AUTHOR); // begin class writer.beginClass(new SimpleType(getWrapper().getTableCamelName(), EnhanceCodegenConstant.EMPTY_STRING, getWrapper().getTableCamelName()), new SimpleType(superClassName, EnhanceCodegenConstant.EMPTY_STRING, superClassName)); // constructor writer.beginConstructor(new Parameter(CONSTRUCTOR_PARAMETER_NAME, Types.STRING)); writer.line(String.format(SUPER_CONSTRUCTOR, CONSTRUCTOR_PARAMETER_NAME)); writer.end(); // dsl method writer.beginStaticMethod(new SimpleType(getWrapper().getTableCamelName(), EnhanceCodegenConstant.EMPTY_STRING, getWrapper().getTableCamelName()), DYNAMIC_METHOD_NAME); writer.line(String.format(DYNAMIC_INSTANCE, getWrapper().getTableCamelName(), table.getTableName())); writer.end(); StringBuffer columns = new StringBuffer(); // column expression for (int i = 0; i < table.getColumns().size(); i++) { Column column = table.getColumns().get(i); // column java doc writer.javadoc(column.getRemark()); writer.line(String.format(COLUMN_EXPRESSION, formatterJavaPropertyName(column.getColumnName()), column.getColumnName())); columns.append(formatterJavaPropertyName(column.getColumnName())); columns.append(i == table.getColumns().size() - 1 ? EnhanceCodegenConstant.EMPTY_STRING : ", "); } // getColumns method writer.annotation(Override.class); writer.beginPublicMethod(new SimpleType(COLUMN_EXPRESSION_ARRAY, EnhanceCodegenConstant.EMPTY_STRING, COLUMN_EXPRESSION_ARRAY), GET_COLUMN_METHOD_NAME); writer.line(String.format(COLUMN_EXPRESSION_ARRAY_INSTANCE, columns.toString())); writer.end(); // end class writer.end(); return stringWriter.toString(); } catch (Exception e) { return null; } }
Example #6
Source File: DynamicEntityClassBuilder.java From api-boot with Apache License 2.0 | 4 votes |
/** * generator dynamic entity * * @return */ @Override public String getClassContent() { try { StringWriter stringWriter = new StringWriter(); CodeWriter writer = new JavaWriter(stringWriter); // current table Table table = getWrapper().getTable(); // package writer.packageDecl(getWrapper().getPackageName()); writer.imports(ColumnExpression.class, TableExpression.class); // formatter super class name String superClassName = String.format(TABLE_EXPRESSION, getEntityName(getWrapper().getTableCamelName())); // java doc writer.javadoc(table.getRemark(), AUTHOR); // begin class writer.beginClass(new SimpleType(getWrapper().getTableCamelName(), EnhanceCodegenConstant.EMPTY_STRING, getWrapper().getTableCamelName()), new SimpleType(superClassName, EnhanceCodegenConstant.EMPTY_STRING, superClassName)); // constructor writer.beginConstructor(new Parameter(CONSTRUCTOR_PARAMETER_NAME, Types.STRING)); writer.line(String.format(SUPER_CONSTRUCTOR, CONSTRUCTOR_PARAMETER_NAME)); writer.end(); // dsl method writer.beginStaticMethod(new SimpleType(getWrapper().getTableCamelName(), EnhanceCodegenConstant.EMPTY_STRING, getWrapper().getTableCamelName()), DYNAMIC_METHOD_NAME); writer.line(String.format(DYNAMIC_INSTANCE, getWrapper().getTableCamelName(), table.getTableName())); writer.end(); StringBuffer columns = new StringBuffer(); // column expression for (int i = 0; i < table.getColumns().size(); i++) { Column column = table.getColumns().get(i); // column java doc writer.javadoc(column.getRemark()); writer.line(String.format(COLUMN_EXPRESSION, formatterJavaPropertyName(column.getColumnName()), column.getColumnName())); columns.append(formatterJavaPropertyName(column.getColumnName())); columns.append(i == table.getColumns().size() - 1 ? EnhanceCodegenConstant.EMPTY_STRING : ", "); } // getColumns method writer.annotation(Override.class); writer.beginPublicMethod(new SimpleType(COLUMN_EXPRESSION_ARRAY, EnhanceCodegenConstant.EMPTY_STRING, COLUMN_EXPRESSION_ARRAY), GET_COLUMN_METHOD_NAME); writer.line(String.format(COLUMN_EXPRESSION_ARRAY_INSTANCE, columns.toString())); writer.end(); // end class writer.end(); return stringWriter.toString(); } catch (Exception e) { return null; } }
Example #7
Source File: AbstractDataBase.java From code-builder with Apache License 2.0 | 4 votes |
/** * 根据结果集获取列的详细信息 * 根据不同的columnPattern获取到的列元数据 * * @param resultSet 结果集 * @param isPrimaryColumn true:主键列,false:普通列 * @return 列基本信息对象 */ private Column getColumn(ResultSet resultSet, boolean isPrimaryColumn) { try { // 数据库字段类型 int jdbcType = resultSet.getInt(TableMetaDataEnum.DATA_TYPE.getValue()); // 列名 String columnName = resultSet.getString(TableMetaDataEnum.COLUMN_NAME.getValue()); // 表名 String tableName = resultSet.getString(TableMetaDataEnum.TABLE_NAME.getValue()); return Column.builder() // 列名 .columnName(columnName) // 列长度 .size(resultSet.getInt(TableMetaDataEnum.COLUMN_SIZE.getValue())) // 是否为空 .nullable(resultSet.getBoolean(TableMetaDataEnum.NULLABLE.getValue())) // 默认值 .defaultValue(resultSet.getString(TableMetaDataEnum.COLUMN_DEF.getValue())) // 数据库列类型 .jdbcType(jdbcType) // 是否自增 .autoincrement(hasColumn(resultSet, TableMetaDataEnum.IS_AUTOINCREMENT.getValue()) ? resultSet.getBoolean(TableMetaDataEnum.IS_AUTOINCREMENT.getValue()) : false) // 列备注信息 .remark(resultSet.getString(TableMetaDataEnum.REMARKS.getValue())) // 精度 .decimalDigits(resultSet.getInt(TableMetaDataEnum.DECIMAL_DIGITS.getValue())) // jdbc类型名称 .jdbcTypeName(JdbcTypeResolver.getJdbcTypeName(jdbcType)) // 格式化后的java field .javaProperty(StringUtil.getCamelCaseString(columnName, false)) // 对应的java数据类型 .javaType(JavaTypeResolver.getJavaType(jdbcType, false)) // java数据类型 .fullJavaType(JavaTypeResolver.getJavaType(jdbcType, true)) // 是否为主键列 // 如果是主键获取列信息,直接返回true .primaryKey(!isPrimaryColumn ? isPrimaryKey(tableName, columnName) : isPrimaryColumn) // 是否为外键列 // 如果是主键获取列信息,直接返回false .foreignKey(!isPrimaryColumn ? isForeignKey(tableName, columnName) : false) .build(); } catch (SQLException e) { e.printStackTrace(); } return null; }
Example #8
Source File: DataBase.java From code-builder with Apache License 2.0 | 2 votes |
/** * 查询表内的全部列表 * * @param tableName 表名 * @return 数据列列表 */ List<Column> getColumns(String tableName);
Example #9
Source File: DataBase.java From code-builder with Apache License 2.0 | 2 votes |
/** * 查询表内 * * @param tableName 表名 * @return 主键列表 */ List<Column> getPrimaryKeys(String tableName);