新增: 自动生成 MAPPER 对象

master
曹世达 6 months ago
parent 635c44cba4
commit dd6b6b00ea

@ -40,14 +40,6 @@ public class InfoClsBuilder {
}
public ClassInfo build() {
classInfo.setControllerNameSuffix(CfgUtils.getControllerNameSuffix());
classInfo.setFormNameSuffix(CfgUtils.getFormNameSuffix());
classInfo.setQueryNameSuffix(CfgUtils.getQueryNameSuffix());
classInfo.setViewNameSuffix(CfgUtils.getViewNameSuffix());
classInfo.setServiceNameSuffix(CfgUtils.getServiceNameSuffix());
classInfo.setServieInterfaceNamePrefix(CfgUtils.getServiceInterfacePrefix());
classInfo.setMapperNameSuffix(CfgUtils.getMapperNameSuffix());
classInfo.setPoNameSuffix(CfgUtils.getPoNameSuffix());
return classInfo;
}

@ -46,6 +46,16 @@ public class InfoOutBuilder {
return this;
}
public InfoOutBuilder setPoPackageName(String poPackageName) {
this.outputInfo.setPoPackageName(poPackageName);
return this;
}
public InfoOutBuilder setQueryPackageName(String queryPackageName) {
this.outputInfo.setQueryPackageName(queryPackageName);
return this;
}
public OutputInfo build() {
this.outputInfo.setOutputFunction(className -> CfgUtils.getJavaFilePath(
this.outputInfo.getPackagePath(),

@ -111,9 +111,7 @@ public class SourceBuilder {
VelocityUtils.render(outputInfo.getTemplatePath(), outputPath, contextInfo);
} else {
// 配置不可以执行覆盖 提示错误消息
LOGGER.warn(
"output file already exists: {}, " + "please remove it or enable auto "
+ "cover exist file,"
LOGGER.warn("output file already exists: {}, " + "please remove it or enable auto " + "cover exist file,"
+ " config.properties should like [output.cover_if_exists=true]",
outputPath
);
@ -127,10 +125,25 @@ public class SourceBuilder {
// 设置类信息
result.setClassInfo(classInfo);
// 设置附加信息
result.setExtra(extra);
result.setExtra(loadExtra());
return result;
}
private Map<String, Object> loadExtra() {
extra.put("poPackageName", CfgUtils.getPoPackageName());
extra.put("queryPackageName", CfgUtils.getQueryPackageName());
extra.put("controllerNameSuffix", CfgUtils.getControllerNameSuffix());
extra.put("serviceNameSuffix", CfgUtils.getServiceNameSuffix());
extra.put("servieInterfaceNamePrefix", CfgUtils.getServiceInterfacePrefix());
extra.put("mapperNameSuffix", CfgUtils.getMapperNameSuffix());
extra.put("poNameSuffix", CfgUtils.getPoNameSuffix());
extra.put("viewNameSuffix", CfgUtils.getViewNameSuffix());
extra.put("formNameSuffix", CfgUtils.getFormNameSuffix());
extra.put("queryNameSuffix", CfgUtils.getQueryNameSuffix());
extra.put("mybatisMapperEnable", CfgUtils.mybatisMapperEnable());
return extra;
}
private void build(TableInfo tableInfo, List<OutputInfo> outputInfoList) {
// 循环输出信息
for (OutputInfo outputInfo : outputInfoList) {
@ -152,6 +165,8 @@ public class SourceBuilder {
.setTemplatePath(CfgUtils.getMapperTemplatePath())
.setPackagePath(CfgUtils.getMapperPackagePath())
.setPackageName(CfgUtils.getMapperPackageName())
.setPoPackageName(CfgUtils.getPoPackageName())
.setQueryPackageName(CfgUtils.getQueryPackageName())
.build(),
// SERVICE
new InfoOutBuilder().setNameSuffix(CfgUtils.getServiceNameSuffix())

@ -4,25 +4,10 @@ public class ClassInfo {
private String packageName;
private String interfacePackageName;
private String className;
private String controllerNameSuffix;
private String serviceNameSuffix;
private String servieInterfaceNamePrefix;
private String mapperNameSuffix;
private String poNameSuffix;
private String viewNameSuffix;
private String formNameSuffix;
private String interfacePackageName;
private String queryNameSuffix;
public String getPackageName() {
return packageName;
@ -32,14 +17,6 @@ public class ClassInfo {
this.packageName = packageName;
}
public String getInterfacePackageName() {
return interfacePackageName;
}
public void setInterfacePackageName(String interfacePackageName) {
this.interfacePackageName = interfacePackageName;
}
public String getClassName() {
return className;
}
@ -48,67 +25,12 @@ public class ClassInfo {
this.className = className;
}
public String getControllerNameSuffix() {
return controllerNameSuffix;
}
public void setControllerNameSuffix(String controllerNameSuffix) {
this.controllerNameSuffix = controllerNameSuffix;
}
public String getServiceNameSuffix() {
return serviceNameSuffix;
}
public void setServiceNameSuffix(String serviceNameSuffix) {
this.serviceNameSuffix = serviceNameSuffix;
}
public String getServieInterfaceNamePrefix() {
return servieInterfaceNamePrefix;
}
public void setServieInterfaceNamePrefix(String servieInterfaceNamePrefix) {
this.servieInterfaceNamePrefix = servieInterfaceNamePrefix;
}
public String getMapperNameSuffix() {
return mapperNameSuffix;
}
public void setMapperNameSuffix(String mapperNameSuffix) {
this.mapperNameSuffix = mapperNameSuffix;
}
public String getPoNameSuffix() {
return poNameSuffix;
}
public void setPoNameSuffix(String poNameSuffix) {
this.poNameSuffix = poNameSuffix;
}
public String getViewNameSuffix() {
return viewNameSuffix;
}
public void setViewNameSuffix(String viewNameSuffix) {
this.viewNameSuffix = viewNameSuffix;
}
public String getFormNameSuffix() {
return formNameSuffix;
}
public void setFormNameSuffix(String formNameSuffix) {
this.formNameSuffix = formNameSuffix;
public String getInterfacePackageName() {
return interfacePackageName;
}
public String getQueryNameSuffix() {
return queryNameSuffix;
public void setInterfacePackageName(String interfacePackageName) {
this.interfacePackageName = interfacePackageName;
}
public void setQueryNameSuffix(String queryNameSuffix) {
this.queryNameSuffix = queryNameSuffix;
}
}

@ -13,10 +13,16 @@ public class OutputInfo {
private String interfacePackageName;
private String poPackageName;
private String queryPackageName;
private String packagePath;
private Function<String, String> outputFunction;
private Boolean mapperAnnotationEnable;
private String nameSuffix = "";
private String namePrefix = "";
@ -53,6 +59,22 @@ public class OutputInfo {
this.interfacePackageName = interfacePackageName;
}
public String getPoPackageName() {
return poPackageName;
}
public void setPoPackageName(String poPackageName) {
this.poPackageName = poPackageName;
}
public String getQueryPackageName() {
return queryPackageName;
}
public void setQueryPackageName(String queryPackageName) {
this.queryPackageName = queryPackageName;
}
public String getPackagePath() {
return packagePath;
}

@ -13,6 +13,7 @@ public class CfgUtils {
// 输出配置
public static final String OUTPUT_COVER_IF_EXIST = "output.cover_if_exists";
public static final String OUTPUT_MYBATIS_MAPPER = "output.mybatis.@mapper";
// 项目配置
public static final String PROJECT_PATH_BASE = "project.path.base";
@ -45,8 +46,8 @@ public class CfgUtils {
public static final String JAVA_NAME_SUFFIX_FORM = "java.name.suffix.form";
public static final String JAVA_NAME_SUFFIX_VIEW = "java.name.suffix.view";
public static final String JAVA_NAME_SUFFIX_CONTROLLER = "java.name.suffix.controller";
public static final String JAVA_NAME_PREFIX_SERVICE_INTERFACE = "java.name.prefix.service"
+ ".interface";
public static final String JAVA_NAME_PREFIX_SERVICE_INTERFACE =
"java.name.prefix.service" + ".interface";
// 模版路径配置
public static final String TEMPLATE_PATH_PO = "template.path.po";
@ -98,8 +99,8 @@ public class CfgUtils {
public static final String DEFAULT_TEMPLATE_PATH_QUERY = "template/query.vm";
public static final String DEFAULT_TEMPLATE_PATH_CONTROLLER = "template/controller.vm";
public static final String DEFAULT_TEMPLATE_PATH_SERVICE = "template/service.vm";
public static final String DEFAULT_TEMPLATE_PATH_SERVICE_INTERFACE = "template/service"
+ ".interface.vm";
public static final String DEFAULT_TEMPLATE_PATH_SERVICE_INTERFACE =
"template/service" + ".interface.vm";
public static final String DEFAULT_TEMPLATE_PATH_MAPPER = "template/mapper.vm";
public static final String DEFAULT_TEMPLATE_PATH_MAPPER_XML = "template/mapper.xml.vm";
private static final PropHelper CONFIG = new PropHelper(PathConsts.CONFIG_PROPERTIES_PATH);
@ -112,25 +113,29 @@ public class CfgUtils {
return CONFIG.getString(PROJECT_PATH_BASE).replaceAll("\\\\", "/");
}
public static Boolean mybatisMapperEnable() {
return CONFIG.getBoolean(OUTPUT_MYBATIS_MAPPER, Boolean.TRUE);
}
public static String getProjectName() {
return StrUtils.getSuffix(getProjectBasePath(), "/");
}
public static String getProjectPath(String moduleName) {
String projectBasePath = getProjectBasePath();
if (!isMultipleModule()) {
if (!multipleModule()) {
return projectBasePath;
} else {
return projectBasePath + "/" + getProjectName() + "-" + moduleName;
}
}
public static boolean isMultipleModule() {
return CONFIG.getBoolean(MODULE_MULTIPLE);
public static boolean multipleModule() {
return CONFIG.getBoolean(MODULE_MULTIPLE, Boolean.FALSE);
}
public static boolean moduleNameAsPackageBase() {
return CONFIG.getBoolean(MODULE_NAME_AS_PACKAGE_BASE);
return CONFIG.getBoolean(MODULE_NAME_AS_PACKAGE_BASE, Boolean.FALSE);
}
public static String getMainJavaPath(String moduleName) {
@ -187,8 +192,7 @@ public class CfgUtils {
public static String getControllerPackageName() {
String moduleName = getServiceModuleName();
String packageName = CONFIG.getString(
PACKAGE_NAME_CONTROLLER,
String packageName = CONFIG.getString(PACKAGE_NAME_CONTROLLER,
DEFAULT_PACKAGE_NAME_CONTROLLER
);
return getPackageName(moduleName, packageName);
@ -202,8 +206,7 @@ public class CfgUtils {
public static String getControllerFilePath(String className) {
String controllerPackagePath = getControllerPackagePath();
String suffix = CONFIG.getString(
JAVA_NAME_SUFFIX_CONTROLLER,
String suffix = CONFIG.getString(JAVA_NAME_SUFFIX_CONTROLLER,
DEFAULT_JAVA_NAME_SUFFIX_CONTROLLER
);
String filename = getJavaFilename(className, suffix);
@ -317,8 +320,7 @@ public class CfgUtils {
public static String getServiceFilePath(String className) {
String servicePackagePath = getServicePackagePath();
String suffix = CONFIG.getString(
JAVA_NAME_SUFFIX_SERVICE,
String suffix = CONFIG.getString(JAVA_NAME_SUFFIX_SERVICE,
DEFAULT_JAVA_NAME_SUFFIX_SERVICE
);
String filename = getJavaFilename(className, suffix);
@ -327,23 +329,20 @@ public class CfgUtils {
public static String getServiceInterfacePrefix() {
return CONFIG.getString(
JAVA_NAME_PREFIX_SERVICE_INTERFACE,
return CONFIG.getString(JAVA_NAME_PREFIX_SERVICE_INTERFACE,
DEFAULT_JAVA_NAME_PREFIX_SERVICE_INTERFACE
);
}
public static String getServiceInterfaceTemplatePath() {
return CONFIG.getString(
TEMPLATE_PATH_SERVICE_INTERFACE,
return CONFIG.getString(TEMPLATE_PATH_SERVICE_INTERFACE,
DEFAULT_TEMPLATE_PATH_SERVICE_INTERFACE
);
}
public static String getServiceInterfacePackageName() {
String moduleName = getServiceModuleName();
String packageName = CONFIG.getString(
PACKAGE_NAME_SERVICE_INTERFACE,
String packageName = CONFIG.getString(PACKAGE_NAME_SERVICE_INTERFACE,
DEFAULT_PACKAGE_NAME_SERVICE_INTERFACE
);
return getPackageName(moduleName, packageName);
@ -357,8 +356,7 @@ public class CfgUtils {
public static String getServiceInterfaceFilePath(String className) {
String servicePackagePath = getServicePackagePath();
String prefix = CONFIG.getString(
JAVA_NAME_PREFIX_SERVICE_INTERFACE,
String prefix = CONFIG.getString(JAVA_NAME_PREFIX_SERVICE_INTERFACE,
DEFAULT_JAVA_NAME_PREFIX_SERVICE_INTERFACE
);
String filename = getJavaFilename(className, "", prefix);

@ -36,3 +36,4 @@ database.table.prefixes=t_,m_
#template.path.mapper=template/mapper.vm
#template.path.mapper.xml=template/mapper.xml.vm
output.cover_if_exists=true
output.mybatis.@mapper=true

@ -1,6 +1,3 @@
package ${cls.packageName};
import org.springframework.web.bind.annotation.RestController;
#define($authorComment)
#if(${ext.author} && ${ext.author} != "")
@ -11,7 +8,10 @@ import org.springframework.web.bind.annotation.RestController;
* @version ${ext.version}#end
#end
#set(${ClassName}="${cls.className}$!{cls.controllerNameSuffix}")
#set(${ClassName}="${cls.className}$!{ext.controllerNameSuffix}")
package ${cls.packageName};
import org.springframework.web.bind.annotation.RestController;
/**
* $!{tbl.comment}控制器

@ -1,4 +1,3 @@
package ${cls.packageName};
#define($authorComment)
#if(${ext.author} && ${ext.author} != "")
@ -9,7 +8,8 @@ package ${cls.packageName};
* @version ${ext.version}#end
#end
#set(${ClassName}="${cls.className}$!{cls.formNameSuffix}")
#set(${ClassName}="${cls.className}$!{ext.formNameSuffix}")
package ${cls.packageName};
/**
* $!{tbl.comment}表单提交

@ -1,5 +1,3 @@
package ${cls.packageName};
#define($authorComment)
#if(${ext.author} && ${ext.author} != "")
@ -10,10 +8,91 @@ package ${cls.packageName};
* @version ${ext.version}#end
#end
#set(${ClassName}="${cls.className}$!{cls.mapperNameSuffix}")
#set(${ClassName}="${cls.className}$!{ext.mapperNameSuffix}")
#set(${QueryName}="${cls.className}$!{ext.queryNameSuffix}")
#set(${PoName}="${cls.className}$!{ext.poNameSuffix}")
package ${cls.packageName};
#if(${ext.mybatisMapperEnable})
import org.apache.ibatis.annotations.Mapper;
#end
import org.apache.ibatis.annotations.Param;
import ${ext.queryPackageName}.${QueryName};
import ${ext.poPackageName}.${PoName};
import java.util.List;
/**
* $!{tbl.comment}数据访问
* ${authorComment}${versionComment}
*/
public class ${ClassName} {
#if(${ext.mybatisMapperEnable})
@Mapper
#end
public interface ${ClassName} {
/**
* 新增/修改$!{tbl.comment}
*
* @param bean 主键为空-新增实体、主键非空-更新条件
* @return 影响记录数
*/
Integer update(@Param("bean") ${QueryName} bean);
/**
* 批量新增/修改$!{tbl.comment}
*
* @param list 主键为空-新增实体、主键非空-更新条件
* @return 影响记录数
*/
Integer updateBatch(@Param("list") List<${QueryName}> list);
/**
* 物理删除$!{tbl.comment}
*
* @param bean 删除条件
* @return 影响记录数
*/
Integer delete(@Param("bean") ${QueryName} bean);
/**
* 逻辑删除$!{tbl.comment}
*
* @param bean 删除条件
* @return 影响记录数
*/
Integer invalid(@Param("bean") ${QueryName} bean);
/**
* 查询单个$!{tbl.comment} 当结果存在多个时 随便拿一个
*
* @param bean 查询条件
* @return 单个
*/
${PoName} anyOne(@Param("bean") ${QueryName} bean);
/**
* 查询单个$!{tbl.comment} 明确知道结果必存在一个
*
* @param bean 查询条件
* @return 单个
*/
${PoName} onlyOne(@Param("bean") ${QueryName} bean);
/**
* 查询多个$!{tbl.comment}
*
* @param bean 查询条件
* @return 列表
*/
List<${PoName}> list(@Param("bean") ${QueryName} bean);
/**
* 统计符合条件的$!{tbl.comment}实体个数
*
* @param bean 查询条件
* @return 统计结果
*/
Long count(@Param("bean") ${QueryName} bean);
}

@ -1,13 +1,3 @@
package ${cls.packageName};
import java.io.Serializable;
#if(${tbl.decimalExists})
import java.math.BigDecimal;
#end
#if(${tbl.dateExists})
import java.util.Date;
#end
#define($authorComment)
#if(${ext.author} && ${ext.author} != "")
@ -18,7 +8,17 @@ import java.util.Date;
* @version ${ext.version}#end
#end
#set(${ClassName}="${cls.className}$!{cls.poNameSuffix}")
#set(${ClassName}="${cls.className}$!{ext.poNameSuffix}")
package ${cls.packageName};
import java.io.Serializable;
#if(${tbl.decimalExists})
import java.math.BigDecimal;
#end
#if(${tbl.dateExists})
import java.util.Date;
#end
/**
* $!{tbl.comment}数据实体
* ${authorComment}${versionComment}

@ -1,4 +1,3 @@
package ${cls.packageName};
#define($authorComment)
#if(${ext.author} && ${ext.author} != "")
@ -9,11 +8,13 @@ package ${cls.packageName};
* @version ${ext.version}#end
#end
#set(${ClassName}="${cls.className}$!{cls.queryNameSuffix}")
#set(${ClassName}="${cls.className}$!{ext.queryNameSuffix}")
package ${cls.packageName};
/**
* $!{tbl.comment}查询
* ${authorComment}${versionComment}
*/
public class ${cls.className}$!{cls.queryNameSuffix} {
public class ${cls.className}$!{ext.queryNameSuffix} {
}

@ -1,4 +1,3 @@
package ${cls.packageName};
#define($authorComment)
#if(${ext.author} && ${ext.author} != "")
@ -9,7 +8,8 @@ package ${cls.packageName};
* @version ${ext.version}#end
#end
#set($InterfaceName="$!{cls.servieInterfaceNamePrefix}${cls.className}$!{cls.serviceNameSuffix}")
#set($InterfaceName="$!{ext.servieInterfaceNamePrefix}${cls.className}$!{ext.serviceNameSuffix}")
package ${cls.packageName};
/**
* $!{tbl.comment}服务接口

@ -1,7 +1,3 @@
package ${cls.packageName};
import ${cls.interfacePackageName}.$!{cls.servieInterfaceNamePrefix}${cls.className}$!{cls.serviceNameSuffix};
#define($authorComment)
#if(${ext.author} && ${ext.author} != "")
@ -12,8 +8,12 @@ import ${cls.interfacePackageName}.$!{cls.servieInterfaceNamePrefix}${cls.classN
* @version ${ext.version}#end
#end
#set(${ClassName}="${cls.className}$!{cls.serviceNameSuffix}")
#set(${InterfaceName}="$!{cls.servieInterfaceNamePrefix}${cls.className}$!{cls.serviceNameSuffix}")
#set(${ClassName}="${cls.className}$!{ext.serviceNameSuffix}")
#set(${InterfaceName}="$!{ext.servieInterfaceNamePrefix}${cls.className}$!{ext.serviceNameSuffix}")
package ${cls.packageName};
import ${cls.interfacePackageName}.$!{ext.servieInterfaceNamePrefix}${cls.className}$!{ext.serviceNameSuffix};
/**
* $!{tbl.comment}服务
* ${authorComment}${versionComment}

@ -1,5 +1,3 @@
package ${cls.packageName};
#define($authorComment)
#if(${ext.author} && ${ext.author} != "")
@ -10,7 +8,9 @@ package ${cls.packageName};
* @version ${ext.version}#end
#end
#set(${ClassName}="${cls.className}$!{cls.viewNameSuffix}")
#set(${ClassName}="${cls.className}$!{ext.viewNameSuffix}")
package ${cls.packageName};
/**
* $!{tbl.comment}视图
* ${authorComment}${versionComment}

Loading…
Cancel
Save