优化: 优化获取表 多数据库支持

master
曹世达 6 months ago
parent 1f37b2eab6
commit 8a8fe969a3

@ -3,11 +3,9 @@ package space.caoshd.otone.builder;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import space.caoshd.otone.entity.ColumnInfo; import space.caoshd.otone.entity.ColumnInfo;
import space.caoshd.otone.helper.PropHelper; import space.caoshd.otone.helper.SqlUtils;
import space.caoshd.otone.util.DBUtils; import space.caoshd.otone.util.DBUtils;
import space.caoshd.otone.util.JsonUtils; import space.caoshd.otone.util.JsonUtils;
import space.caoshd.otone.util.PathConsts;
import space.caoshd.otone.util.SqlConsts;
import space.caoshd.otone.util.StrUtils; import space.caoshd.otone.util.StrUtils;
import space.caoshd.otone.util.TypeUtils; import space.caoshd.otone.util.TypeUtils;
@ -20,8 +18,6 @@ public class ColumnBuilder {
private static final Logger LOGGER = LoggerFactory.getLogger(ColumnBuilder.class); private static final Logger LOGGER = LoggerFactory.getLogger(ColumnBuilder.class);
private static final PropHelper CONFIG = new PropHelper(PathConsts.MYSQL_PROPERTIES_PATH);
private final String schemaName; private final String schemaName;
private final String tableName; private final String tableName;
@ -31,7 +27,7 @@ public class ColumnBuilder {
} }
public List<ColumnInfo> build() { public List<ColumnInfo> build() {
String sql = CONFIG.getString(SqlConsts.COLUMN_SQL_SCHEMA_TABLE); String sql = SqlUtils.getColumnSql();
List<String> params = Arrays.asList(schemaName, tableName); List<String> params = Arrays.asList(schemaName, tableName);
List<Map<String, String>> columns = DBUtils.list(sql, params); List<Map<String, String>> columns = DBUtils.list(sql, params);
@ -44,20 +40,25 @@ public class ColumnBuilder {
private ColumnInfo createColumnInfo(Map<String, String> column) { private ColumnInfo createColumnInfo(Map<String, String> column) {
ColumnInfo result = new ColumnInfo(); ColumnInfo result = new ColumnInfo();
String columnComment = CONFIG.getString(SqlConsts.LABEL_COLUMN_COMMENT); String columnName = SqlUtils.getLabelColumnName();
result.setComment(column.get(columnComment));
String columnName = CONFIG.getString(SqlConsts.LABEL_COLUMN_NAME);
result.setColumnName(column.get(columnName)); result.setColumnName(column.get(columnName));
String fieldName = StrUtils.toCamelCase(result.getColumnName(), false); String fieldName = StrUtils.toCamelCase(result.getColumnName(), false);
result.setFieldName(fieldName); result.setFieldName(fieldName);
String fieldNameCap = StrUtils.toCamelCase(result.getColumnName(), true); String fieldNameCap = StrUtils.toCamelCase(result.getColumnName(), true);
result.setFieldNameCap(fieldNameCap); result.setFieldNameCap(fieldNameCap);
String dbType = CONFIG.getString(SqlConsts.LABEL_DATA_TYPE);
String columnComment = SqlUtils.getLabelColumnComment();
result.setComment(column.get(columnComment));
String dbType = SqlUtils.getLabelDataType();
result.setDbType(column.get(dbType)); result.setDbType(column.get(dbType));
String javaType = TypeUtils.toJavaDataType(result.getDbType()); String javaType = TypeUtils.toJavaDataType(result.getDbType());
result.setJavaType(javaType); result.setJavaType(javaType);
String extra = CONFIG.getString(SqlConsts.LABEL_EXTRA); String autoIncrement = SqlUtils.getLabelAutoIncrement();
result.setAutoIncrement(column.get(extra).contains(SqlConsts.VALUE_AUTO_INCREMENT)); result.setAutoIncrement(SqlUtils.VALUE_AUTO_INCREMENT_YES.equals(column.get(autoIncrement)));
String primary = SqlUtils.getLabelPrimary();
result.setPrimary(SqlUtils.VALUE_PRIMARY_YES.equals(column.get(primary)));
LOGGER.debug(JsonUtils.toJson(result)); LOGGER.debug(JsonUtils.toJson(result));
return result; return result;

@ -1,52 +0,0 @@
package space.caoshd.otone.builder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import space.caoshd.otone.entity.IndexInfo;
import space.caoshd.otone.helper.PropHelper;
import space.caoshd.otone.util.DBUtils;
import space.caoshd.otone.util.JsonUtils;
import space.caoshd.otone.util.PathConsts;
import space.caoshd.otone.util.SqlConsts;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
public class IndexBuilder {
private static final Logger LOGGER = LoggerFactory.getLogger(IndexBuilder.class);
private static final PropHelper CONFIG =
new PropHelper(PathConsts.MYSQL_PROPERTIES_PATH);
public static List<IndexInfo> loadIndexInfo(String schemaName, String tableName) {
String sql = CONFIG.getString(SqlConsts.INDEX_SQL_SCHEMA_TABLE);
List<String> params = Arrays.asList(schemaName, tableName);
List<Map<String, String>> indexes = DBUtils.list(sql, params);
List<IndexInfo> result = new ArrayList<>();
for (Map<String, String> index : indexes) {
result.add(createIndexInfo(index));
}
return result;
}
private static IndexInfo createIndexInfo(Map<String, String> index) {
IndexInfo result = new IndexInfo();
String columnName = CONFIG.getString(SqlConsts.LABEL_COLUMN_NAME);
result.setColumnName(index.get(columnName));
String indexName = CONFIG.getString(SqlConsts.LABEL_INDEX_NAME);
result.setIndexName(index.get(indexName));
String nonUnique = CONFIG.getString(SqlConsts.LABEL_NON_UNIQUE);
result.setNonUnique(index.get(nonUnique));
LOGGER.debug(JsonUtils.toJson(result));
return result;
}
}

@ -1,11 +1,8 @@
package space.caoshd.otone.builder; package space.caoshd.otone.builder;
import space.caoshd.otone.entity.OutputInfo; import space.caoshd.otone.entity.OutputInfo;
import space.caoshd.otone.entity.TableInfo;
import space.caoshd.otone.util.CfgUtils; import space.caoshd.otone.util.CfgUtils;
import java.util.List;
public class InfoOutBuilder { public class InfoOutBuilder {
private final OutputInfo outputInfo = new OutputInfo(); private final OutputInfo outputInfo = new OutputInfo();

@ -3,94 +3,50 @@ package space.caoshd.otone.builder;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import space.caoshd.otone.entity.ColumnInfo; import space.caoshd.otone.entity.ColumnInfo;
import space.caoshd.otone.entity.IndexInfo;
import space.caoshd.otone.entity.TableInfo; import space.caoshd.otone.entity.TableInfo;
import space.caoshd.otone.helper.PropHelper; import space.caoshd.otone.helper.SqlUtils;
import space.caoshd.otone.util.CfgUtils; import space.caoshd.otone.util.CfgUtils;
import space.caoshd.otone.util.DBUtils; import space.caoshd.otone.util.DBUtils;
import space.caoshd.otone.util.JsonUtils; import space.caoshd.otone.util.JsonUtils;
import space.caoshd.otone.util.PathConsts;
import space.caoshd.otone.util.SqlConsts;
import space.caoshd.otone.util.TypeUtils; import space.caoshd.otone.util.TypeUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
public class TableBuilder { public class TableBuilder {
private static final Logger LOGGER = LoggerFactory.getLogger(TableBuilder.class); private static final Logger LOGGER = LoggerFactory.getLogger(TableBuilder.class);
private static final PropHelper MYSQL_CONFIG = new PropHelper(PathConsts.MYSQL_PROPERTIES_PATH);
private static final PropHelper CONFIG = new PropHelper(PathConsts.CONFIG_PROPERTIES_PATH);
public List<TableInfo> build() { public List<TableInfo> build() {
List<TableInfo> result = new ArrayList<>(); List<TableInfo> result = new ArrayList<>();
List<String> schemaNames = CONFIG.getStringList(CfgUtils.DATABASE_NAME_SCHEMAS); String sql = SqlUtils.getTableSql();
if (schemaNames.isEmpty()) { List<Map<String, String>> tables = DBUtils.list(sql);
String sql = MYSQL_CONFIG.getString(SqlConsts.TABLE_SQL); for (Map<String, String> table : tables) {
List<Map<String, String>> tables = DBUtils.list(sql); List<String> tableNames = CfgUtils.getDatabaseTableIncludes();
for (Map<String, String> table : tables) { if (tableNames.isEmpty()) {
result.add(createTableInfo(table));
}
} else {
for (String schemaName : schemaNames) {
result.addAll(build(schemaName));
}
}
return result;
}
public List<TableInfo> build(String schemaName) {
List<TableInfo> result = new ArrayList<>();
List<String> tableNames = CONFIG.getStringList(CfgUtils.DATABASE_NAME_TABLES);
if (tableNames.isEmpty()) {
String sql = MYSQL_CONFIG.getString(SqlConsts.TABLE_SQL_SCHEMA);
List<String> params = Collections.singletonList(schemaName);
List<Map<String, String>> tables = DBUtils.list(sql, params);
for (Map<String, String> table : tables) {
result.add(createTableInfo(table)); result.add(createTableInfo(table));
} } else {
} else { if (tableNames.contains(SqlUtils.getLabelTableName())) {
for (String tableName : tableNames) { result.add(createTableInfo(table));
TableInfo tableInfo = build(schemaName, tableName);
if (Objects.nonNull(tableInfo)) {
result.add(tableInfo);
} }
} }
} }
return result; return result;
} }
public TableInfo build(String schemaName, String tableName) {
String sql = MYSQL_CONFIG.getString(SqlConsts.TABLE_SQL_SCHEMA_TABLE);
List<String> params = Arrays.asList(schemaName, tableName);
Map<String, String> table = DBUtils.one(sql, params);
if (Objects.isNull(table)) {
LOGGER.warn("table: [{}] not exists", tableName);
return null;
}
return createTableInfo(table);
}
private TableInfo createTableInfo(Map<String, String> table) { private TableInfo createTableInfo(Map<String, String> table) {
TableInfo result = new TableInfo(); TableInfo result = new TableInfo();
String tableSchemaLabel = MYSQL_CONFIG.getString(SqlConsts.LABEL_TABLE_SCHEMA); String tableSchemaLabel = SqlUtils.getLabelTableSchema();
String tableSchema = table.get(tableSchemaLabel); String tableSchema = table.get(tableSchemaLabel);
result.setTableSchema(tableSchema); result.setTableSchema(tableSchema);
String tableCommentLabel = MYSQL_CONFIG.getString(SqlConsts.LABEL_TABLE_COMMENT); String tableCommentLabel = SqlUtils.getLabelTableComment();
String comment = table.get(tableCommentLabel); String comment = table.get(tableCommentLabel);
result.setComment(comment); result.setComment(comment);
String tableNameLabel = MYSQL_CONFIG.getString(SqlConsts.LABEL_TABLE_NAME); String tableNameLabel = SqlUtils.getLabelTableName();
String tableName = table.get(tableNameLabel); String tableName = table.get(tableNameLabel);
result.setTableName(tableName); result.setTableName(tableName);
@ -115,26 +71,6 @@ public class TableBuilder {
result.setInvalidValue(invalidValue); result.setInvalidValue(invalidValue);
} }
List<IndexInfo> indexInfoList = IndexBuilder.loadIndexInfo(
result.getTableSchema(),
result.getTableName()
);
Map<String, List<ColumnInfo>> indexInfo = new HashMap<>();
indexInfoList.forEach(index -> {
List<ColumnInfo> indexColumnInfoList = indexInfo.computeIfAbsent(
index.getIndexName(),
k -> new ArrayList<>()
);
ColumnInfo columnInfoByColumnName = getColumnInfoByColumnName(
columnInfo,
index.getColumnName()
);
indexColumnInfoList.add(columnInfoByColumnName);
});
result.setIndexes(indexInfo);
LOGGER.debug(JsonUtils.toJson(result)); LOGGER.debug(JsonUtils.toJson(result));
return result; return result;
} }
@ -143,13 +79,4 @@ public class TableBuilder {
return new ColumnBuilder(tableSchema, tableName).build(); return new ColumnBuilder(tableSchema, tableName).build();
} }
private ColumnInfo getColumnInfoByColumnName(
List<ColumnInfo> columnInfoList, String columnName
) {
return columnInfoList.stream()
.filter(x -> columnName.equals(x.getColumnName()))
.findFirst()
.orElseThrow(() -> new RuntimeException("column: " + columnName + " not exists."));
}
} }

@ -9,6 +9,7 @@ public class ColumnInfo {
private String javaType; private String javaType;
private String comment; private String comment;
private Boolean autoIncrement; private Boolean autoIncrement;
private Boolean primary;
public String getColumnName() { public String getColumnName() {
return columnName; return columnName;
@ -65,4 +66,13 @@ public class ColumnInfo {
public void setAutoIncrement(Boolean autoIncrement) { public void setAutoIncrement(Boolean autoIncrement) {
this.autoIncrement = autoIncrement; this.autoIncrement = autoIncrement;
} }
public Boolean getPrimary() {
return primary;
}
public void setPrimary(Boolean primary) {
this.primary = primary;
}
} }

@ -1,34 +0,0 @@
package space.caoshd.otone.entity;
public class IndexInfo {
private String nonUnique;
private String indexName;
private String columnName;
public String getNonUnique() {
return nonUnique;
}
public void setNonUnique(String nonUnique) {
this.nonUnique = nonUnique;
}
public String getIndexName() {
return indexName;
}
public void setIndexName(String indexName) {
this.indexName = indexName;
}
public String getColumnName() {
return columnName;
}
public void setColumnName(String columnName) {
this.columnName = columnName;
}
}

@ -0,0 +1,63 @@
package space.caoshd.otone.helper;
import space.caoshd.otone.util.PathConsts;
public class SqlUtils {
public static final String TABLE_SQL = "table.sql";
public static final String COLUMN_SQL = "column.sql";
public static final String LABEL_TABLE_NAME = "label.table_name";
public static final String LABEL_TABLE_SCHEMA = "label.table_schema";
public static final String LABEL_TABLE_COMMENT = "label.table_comment";
public static final String LABEL_COLUMN_NAME = "label.column_name";
public static final String LABEL_COLUMN_COMMENT = "label.column_comment";
public static final String LABEL_DATA_TYPE = "label.data_type";
public static final String LABEL_AUTO_INCREMENT = "label.auto_increment";
public static final String LABEL_PRIMARY = "label.primary";
public static final String VALUE_AUTO_INCREMENT_YES = "1";
public static final String VALUE_PRIMARY_YES = "1";
private static final PropHelper CONFIG = new PropHelper(PathConsts.MYSQL_PROPERTIES_PATH);
private SqlUtils() {}
public static String getTableSql() {
return CONFIG.getString(TABLE_SQL);
}
public static String getColumnSql() {
return CONFIG.getString(COLUMN_SQL);
}
public static String getLabelTableName() {
return CONFIG.getString(LABEL_TABLE_NAME);
}
public static String getLabelTableSchema() {
return CONFIG.getString(LABEL_TABLE_SCHEMA);
}
public static String getLabelTableComment() {
return CONFIG.getString(LABEL_TABLE_COMMENT);
}
public static String getLabelColumnComment() {
return CONFIG.getString(LABEL_COLUMN_COMMENT);
}
public static String getLabelColumnName() {
return CONFIG.getString(LABEL_COLUMN_NAME);
}
public static String getLabelDataType() {
return CONFIG.getString(LABEL_DATA_TYPE);
}
public static String getLabelAutoIncrement() {
return CONFIG.getString(LABEL_AUTO_INCREMENT);
}
public static String getLabelPrimary() {
return CONFIG.getString(LABEL_PRIMARY);
}
}

@ -8,8 +8,7 @@ import java.util.List;
public class CfgUtils { public class CfgUtils {
// 数据库配置 // 数据库配置
public static final String DATABASE_NAME_SCHEMAS = "database.name.schemas"; public static final String DATABASE_TABLE_INCLUDES = "database.table.includes";
public static final String DATABASE_NAME_TABLES = "database.name.tables";
public static final String DATABASE_TABLE_PREFIXES = "database.table.prefixes"; public static final String DATABASE_TABLE_PREFIXES = "database.table.prefixes";
public static final String DATABASE_TABLE_INVALID_COLUMNS = "database.table.invalid_columns"; public static final String DATABASE_TABLE_INVALID_COLUMNS = "database.table.invalid_columns";
public static final String DATABASE_TABLE_INVALID_VALUES = "database.table.invalid_values"; public static final String DATABASE_TABLE_INVALID_VALUES = "database.table.invalid_values";
@ -111,6 +110,10 @@ public class CfgUtils {
// 私有化构造器 // 私有化构造器
private CfgUtils() {} private CfgUtils() {}
public static List<String> getDatabaseTableIncludes() {
return CONFIG.getStringList(DATABASE_TABLE_INCLUDES);
}
public static String getProjectBasePath() { public static String getProjectBasePath() {
return CONFIG.getString(PROJECT_PATH_BASE).replaceAll("\\\\", "/"); return CONFIG.getString(PROJECT_PATH_BASE).replaceAll("\\\\", "/");
} }
@ -415,7 +418,7 @@ public class CfgUtils {
return getPackagePath(moduleName, packageName); return getPackagePath(moduleName, packageName);
} }
public static String getEntityjavaPath(String className) { public static String getEntityPath(String className) {
String poPackagePath = getEntityPackagePath(); String poPackagePath = getEntityPackagePath();
String suffix = CONFIG.getString(JAVA_NAME_SUFFIX_ENTITY, DEFAULT_JAVA_NAME_SUFFIX_ENTITY); String suffix = CONFIG.getString(JAVA_NAME_SUFFIX_ENTITY, DEFAULT_JAVA_NAME_SUFFIX_ENTITY);
String filename = getJavaFilename(className, suffix); String filename = getJavaFilename(className, suffix);

@ -1,23 +0,0 @@
package space.caoshd.otone.util;
public class SqlConsts {
public static final String TABLE_SQL = "table.sql";
public static final String TABLE_SQL_SCHEMA = "table.sql.schema";
public static final String TABLE_SQL_SCHEMA_TABLE = "table.sql.schema.table";
public static final String COLUMN_SQL_SCHEMA_TABLE = "column.sql.schema.table";
public static final String INDEX_SQL_SCHEMA_TABLE = "index.sql.schema.table";
public static final String LABEL_TABLE_NAME = "label.table_name";
public static final String LABEL_TABLE_SCHEMA = "label.table_schema";
public static final String LABEL_TABLE_COMMENT = "label.table_comment";
public static final String LABEL_COLUMN_NAME = "label.column_name";
public static final String LABEL_COLUMN_COMMENT = "label.column_comment";
public static final String LABEL_INDEX_NAME = "label.index_name";
public static final String LABEL_NON_UNIQUE = "label.non_unique";
public static final String LABEL_DATA_TYPE = "label.data_type";
public static final String LABEL_EXTRA = "label.extra";
public static final String VALUE_AUTO_INCREMENT = "auto_increment";
private SqlConsts() {}
}

@ -2,9 +2,8 @@ package space.caoshd.otone.util;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import space.caoshd.otone.helper.PropHelper; import space.caoshd.otone.helper.SqlUtils;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -12,14 +11,8 @@ public class DBUtilsTest {
@Test @Test
public void executeQuery() { public void executeQuery() {
PropHelper sqlProperties = new PropHelper(PathConsts.MYSQL_PROPERTIES_PATH); String tableSql = SqlUtils.getTableSql();
String sql = sqlProperties.getString(SqlConsts.TABLE_SQL_SCHEMA_TABLE); List<Map<String, String>> maps = DBUtils.list(tableSql);
PropHelper configProperties =
new PropHelper(PathConsts.CONFIG_PROPERTIES_PATH);
List<String> schemas = configProperties.getStringList(CfgUtils.DATABASE_NAME_SCHEMAS);
List<String> tables = configProperties.getStringList(CfgUtils.DATABASE_NAME_TABLES);
List<Object> params = Arrays.asList(schemas.get(0), tables.get(0));
List<Map<String, String>> maps = DBUtils.list(sql, params);
Assert.assertFalse(maps.isEmpty()); Assert.assertFalse(maps.isEmpty());
} }
} }

@ -1,7 +1,7 @@
project.path.base=D:/workspace/otono-debug/ project.path.base=D:/workspace/otono-debug/
package.name.base=space.caoshd.navigator package.name.base=space.caoshd.navigator
database.name.schemas=otone database.table.includes=
database.name.tables= database.table.prefixes=t_,m_
output.cover_if_exists=true output.cover_if_exists=true
#project.path.java=src/main/java #project.path.java=src/main/java
@ -29,7 +29,7 @@ output.cover_if_exists=true
#java.name.suffix.query=Query #java.name.suffix.query=Query
#java.name.suffix.mapper=Mapper #java.name.suffix.mapper=Mapper
#java.name.suffix.entity=Entity #java.name.suffix.entity=Entity
#database.table.prefixes=t_,m_ #database.name.schemas=
#database.table.invalid_columns=delete_flag #database.table.invalid_columns=delete_flag
#database.table.invalid_values=1 #database.table.invalid_values=1
#template.path.entity=template/entity.vm #template.path.entity=template/entity.vm

@ -0,0 +1,5 @@
table.sql=select table_schema, table_name, remarks as table_comment from information_schema.tables where table_schema = current_schema()
column.sql=select column_name, remarks as column_comment, data_type, case when is_identity = 'YES' then '1' else '0' end as auto_increment from information_schema.columns where table_schema = ? and table_name = ?
label.table_schema=TABLE_SCHEMA
label.table_name=TABLE_NAME
label.table_comment=TABLE_COMMENT

@ -1,15 +1,10 @@
table.sql=select * from information_schema.tables where TABLE_SCHEMA not in ('mysql', 'information_schema', 'performance_schema', 'sys')
table.sql.schema=select * from information_schema.tables where table_schema = ?
table.sql.schema.table=select * from information_schema.tables where table_schema = ? and table_name = ?
column.sql.schema.table=select * from information_schema.columns where table_schema = ? and table_name = ?
index.sql.schema.table=select * from information_schema.statistics where table_schema = ? and table_name = ?
table.sql=select table_schema, table_name, table_comment from information_schema.tables where table_schema = DATABASE();
column.sql=select column_name, column_comment, data_type, locate('auto_increment', extra) > 0 as auto_increment, case when column_key = 'PRI' then '1' else '0' end as `primary` from information_schema.columns where table_schema = ? and table_name = ?
label.table_schema=TABLE_SCHEMA label.table_schema=TABLE_SCHEMA
label.table_name=TABLE_NAME label.table_name=TABLE_NAME
label.table_comment=TABLE_COMMENT label.table_comment=TABLE_COMMENT
label.column_name=COLUMN_NAME label.column_name=COLUMN_NAME
label.column_comment=COLUMN_COMMENT label.column_comment=COLUMN_COMMENT
label.index_name=INDEX_NAME
label.non_unique=NON_UNIQUE
label.data_type=DATA_TYPE label.data_type=DATA_TYPE
label.extra=EXTRA label.primary=PRIMARY

@ -130,69 +130,4 @@ public class ${ClassName} {
return ${serviceName}.count(req); return ${serviceName}.count(req);
} }
#foreach($indexColumns in ${tbl.indexes})
#set(${methodNameWithSuffix}="oneBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end")
#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)")
#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.javaType} ${indexColumn.fieldName}, #end")
#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)")
#set(${paramValuesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.fieldName}, #end")
#set(${paramValues}="$paramValuesWithSuffix.substring(0, $paramValuesWithSuffix.length() - 2)")
#set(${paramComments}="#foreach($indexColumn in ${indexColumns})
* @param ${indexColumn.fieldName} ${indexColumn.comment}#end")
/**
* 通过唯一键查询单个$!{tbl.comment}
* ${paramComments}
* @return 单个$!{tbl.comment}
*/
${ResName} ${methodName}(${paramNames}) {
${EntityName} entity = ${serviceName}.${methodName}(${paramValues});
${ResName} res = new ${ResName}();
BeanUtils.copyProperties(entity, res);
return res;
}
#end
#foreach($indexColumns in ${tbl.indexes})
#set(${methodNameWithSuffix}="deleteBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end")
#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)")
#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.javaType} ${indexColumn.fieldName}, #end")
#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)")
#set(${paramValuesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.fieldName}, #end")
#set(${paramValues}="$paramValuesWithSuffix.substring(0, $paramValuesWithSuffix.length() - 2)")
#set(${paramComments}="#foreach($indexColumn in ${indexColumns})
* @param ${indexColumn.fieldName} ${indexColumn.comment}#end")
/**
* 通过唯一键删除单个$!{tbl.comment}
* ${paramComments}
* @return 影响记录数
*/
Integer $methodName(${paramNames}) {
return ${serviceName}.${methodName}(${paramValues});
}
#end
#if(${invalidColumnExists})
#foreach($indexColumns in ${tbl.indexes})
#set(${methodNameWithSuffix}="invalidBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end")
#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)")
#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})@Param(""${indexColumn.fieldName}"") ${indexColumn.javaType} ${indexColumn.fieldName}, #end")
#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)")
#set(${paramValuesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.fieldName}, #end")
#set(${paramValues}="$paramValuesWithSuffix.substring(0, $paramValuesWithSuffix.length() - 2)")
#set(${paramComments}="#foreach($indexColumn in ${indexColumns})
* @param ${indexColumn.fieldName} ${indexColumn.comment}#end")
/**
* 逻辑删除$!{tbl.comment}
* ${paramComments}
* @return 影响记录数
*/
Integer $methodName(${paramNames}){
return ${serviceName}.${methodName}(${paramValues});
}
#end
#end
} }

@ -115,59 +115,4 @@ public interface ${ClassName} {
@Param("query") ${QueryName} query @Param("query") ${QueryName} query
); );
#foreach($indexColumns in ${tbl.indexes})
#set(${methodNameWithSuffix}="oneBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end")
#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)")
#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})@Param(""${indexColumn.fieldName}"") ${indexColumn.javaType} ${indexColumn.fieldName}, #end")
#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)")
#set(${paramComments}="#foreach($indexColumn in ${indexColumns})
* @param ${indexColumn.fieldName} ${indexColumn.comment}#end")
/**
* 通过唯一键查询单个$!{tbl.comment}
* ${paramComments}
* @return 单个$!{tbl.comment}
*/
${EntityName} $methodName(
${paramNames}
);
#end
#foreach($indexColumns in ${tbl.indexes})
#set(${methodNameWithSuffix}="deleteBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end")
#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)")
#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})@Param(""${indexColumn.fieldName}"") ${indexColumn.javaType} ${indexColumn.fieldName}, #end")
#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)")
#set(${paramComments}="#foreach($indexColumn in ${indexColumns})
* @param ${indexColumn.fieldName} ${indexColumn.comment}#end")
/**
* 通过唯一键删除单个$!{tbl.comment}
* ${paramComments}
* @return 影响记录数
*/
Integer $methodName(
${paramNames}
);
#end
#if(${invalidColumnExists})
#foreach($indexColumns in ${tbl.indexes})
#set(${methodNameWithSuffix}="invalidBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end")
#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)")
#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})@Param(""${indexColumn.fieldName}"") ${indexColumn.javaType} ${indexColumn.fieldName}, #end")
#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)")
#set(${paramComments}="#foreach($indexColumn in ${indexColumns})
* @param ${indexColumn.fieldName} ${indexColumn.comment}#end")
/**
* 逻辑删除$!{tbl.comment}
* ${paramComments}
* @return 影响记录数
*/
Integer $methodName(
${paramNames}
);
#end
#end
} }

@ -148,69 +148,4 @@ public class ${ClassName} implements ${InterfaceName} {
return ${mapperName}.count(query); return ${mapperName}.count(query);
} }
#foreach($indexColumns in ${tbl.indexes})
#set(${methodNameWithSuffix}="oneBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end")
#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)")
#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.javaType} ${indexColumn.fieldName}, #end")
#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)")
#set(${paramValuesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.fieldName}, #end")
#set(${paramValues}="$paramValuesWithSuffix.substring(0, $paramValuesWithSuffix.length() - 2)")
#set(${paramComments}="#foreach($indexColumn in ${indexColumns})
* @param ${indexColumn.fieldName} ${indexColumn.comment}#end")
/**
* 通过唯一键查询单个$!{tbl.comment}
* ${paramComments}
* @return 单个$!{tbl.comment}
*/
@Override
public ${EntityName} $methodName(${paramNames}) {
return ${mapperName}.$methodName(${paramValues});
}
#end
#foreach($indexColumns in ${tbl.indexes})
#set(${methodNameWithSuffix}="deleteBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end")
#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)")
#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.javaType} ${indexColumn.fieldName}, #end")
#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)")
#set(${paramValuesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.fieldName}, #end")
#set(${paramValues}="$paramValuesWithSuffix.substring(0, $paramValuesWithSuffix.length() - 2)")
#set(${paramComments}="#foreach($indexColumn in ${indexColumns})
* @param ${indexColumn.fieldName} ${indexColumn.comment}#end")
/**
* 通过唯一键删除单个$!{tbl.comment}
* ${paramComments}
* @return 影响记录数
*/
@Override
public Integer $methodName(${paramNames}) {
return ${mapperName}.$methodName(${paramValues});
}
#end
#if(${invalidColumnExists})
#foreach($indexColumns in ${tbl.indexes})
#set(${methodNameWithSuffix}="invalidBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end")
#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)")
#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})@Param(""${indexColumn.fieldName}"") ${indexColumn.javaType} ${indexColumn.fieldName}, #end")
#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)")
#set(${paramValuesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.fieldName}, #end")
#set(${paramValues}="$paramValuesWithSuffix.substring(0, $paramValuesWithSuffix.length() - 2)")
#set(${paramComments}="#foreach($indexColumn in ${indexColumns})
* @param ${indexColumn.fieldName} ${indexColumn.comment}#end")
/**
* 逻辑删除$!{tbl.comment}
* ${paramComments}
* @return 影响记录数
*/
@Override
public Integer $methodName(${paramNames}) {
return ${mapperName}.$methodName(${paramValues});
}
#end
#end
} }

@ -90,54 +90,4 @@ public interface $InterfaceName {
*/ */
Long count(${ReqName} req); Long count(${ReqName} req);
#foreach($indexColumns in ${tbl.indexes})
#set(${methodNameWithSuffix}="oneBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end")
#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)")
#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.javaType} ${indexColumn.fieldName}, #end")
#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)")
#set(${paramComments}="#foreach($indexColumn in ${indexColumns})
* @param ${indexColumn.fieldName} ${indexColumn.comment}#end")
/**
* 通过唯一键查询单个$!{tbl.comment}
* ${paramComments}
* @return 单个$!{tbl.comment}
*/
${EntityName} $methodName(${paramNames});
#end
#foreach($indexColumns in ${tbl.indexes})
#set(${methodNameWithSuffix}="deleteBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end")
#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)")
#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.javaType} ${indexColumn.fieldName}, #end")
#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)")
#set(${paramComments}="#foreach($indexColumn in ${indexColumns})
* @param ${indexColumn.fieldName} ${indexColumn.comment}#end")
/**
* 通过唯一键删除单个$!{tbl.comment}
* ${paramComments}
* @return 影响记录数
*/
Integer $methodName(${paramNames});
#end
#if(${invalidColumnExists})
#foreach($indexColumns in ${tbl.indexes})
#set(${methodNameWithSuffix}="invalidBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end")
#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)")
#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})@Param(""${indexColumn.fieldName}"") ${indexColumn.javaType} ${indexColumn.fieldName}, #end")
#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)")
#set(${paramComments}="#foreach($indexColumn in ${indexColumns})
* @param ${indexColumn.fieldName} ${indexColumn.comment}#end")
/**
* 逻辑删除$!{tbl.comment}
* ${paramComments}
* @return 影响记录数
*/
Integer $methodName(${paramNames});
#end
#end
} }
Loading…
Cancel
Save