diff --git a/README.md b/README.md
index 4256087..eddc4d5 100644
--- a/README.md
+++ b/README.md
@@ -20,23 +20,24 @@
> #支持`MySQL`、Oracle、PgSQL三大主流数据库
>
>generate to many popular templates by ddl-sql/insert-sql/simple json
->可通过`建表SQL语句`或`INSERT语句`或者`简单JSON`生成`JPA/JdbcTemplate/Mybatis/MybatisPlus/BeetlSQL`相关模板代码.
+> 可通过`建表SQL语句`或`INSERT语句`或者`简单JSON`生成`JPA/JdbcTemplate/Mybatis/MybatisPlus/BeetlSQL`相关模板代码.
>
>thanks for your using and feedback,I'm inspired by the 600PV every day and github more than 700 stars
-> 感谢大家的使用和反馈,每天六百的PV和获得超过七百多的星星是我前进和继续做下去的动力。
+> 感谢大家的使用和反馈,每天六百的PV和获得超过七百多的星星是我前进和继续做下去的动力。
>
>hope everyone can keep good balance on work and life , stay health and safety , be smooth on work as well
-> 愿大家可以维持生活和工作平衡,保持健康和安全,祝大家工作顺利!
+> 愿大家可以维持生活和工作平衡,保持健康和安全,祝大家工作顺利!
# Tips or Features
-- 支持DDL SQL/INSERT SQL/SIMPLE JSON生成模式
-- 自动记忆最近生成的内容,最多保留9个
+- 支持DDL SQL/INSERT SQL/SIMPLE JSON三种生成模式
+- `自动记忆`最近生成的内容,最多保留9个
- 提供众多`通用模板`,易于使用,复制粘贴加简单修改即可完成CRUD操作
- 支持`特殊字符`模板(`#`请用`井`代替;`$`请用`¥`代替)
- `Util集合`提供一些基本对象的使用方法供方便COPY,如对应的CRUD SQL语句、setMap、getMap、get属性等等
-- 关于`类名注释`,根据`comment=(mysql)`或者`comment on table(pgsql/oracle)`生成
+- 关于`类名注释`,可根据`comment=(mysql)`或者`comment on table(pgsql/oracle)`生成
- 可设置是否`自动引包`(java中的import)及`引入包路径`(java类中的package),建议取消并配合IDEA的自动引包更智能(Settings→Editor→General→Auto Import,勾选Add unambiguous imports on the fly以及Optimize imports on the fly)。
- 可设置`表名前缀`,例如sys_user前缀为sys_之后可以正确生成user类
+- 可切换`header.html`中的include文件为`header-local.html`(本地模式)/`header-CDN.html`(云CDN模式)
# Url
@@ -58,10 +59,10 @@ Thanks for `JetBrains` providing us the `Licenses for Open Source Development`
# Update Logs
|更新日期|更新内容|
|:----|:----|
-|2021.01.17|生成后自动trim掉前后空格输出。完善ReadMe文档。|
+|2021.01.17|生成后自动trim掉前后空格输出。
完善ReadMe文档。
优化云CDN引入部分。
优化returnUtil部分。
表明前缀选项(感谢@wwlg的建议)。
是否带字段注释设置(感谢@fengpojian的建议)。
优化Mybatis的''!=判断(感谢@zhongsb的建议)。
Mybatis-Plus增加Service层(感谢@yf466532479的建议)。 |
|2021.01.16|全新3.0版本:
一、前端半vue半js化,更多动态加载项。
二、支持更多生成设置,优化生成场景。
三、js导入支持本地/CDN模式,支持断网环境轻松使用。|
|2020.10.22|1.tinyint多加一个Short类型转换(感谢@wttHero的建议)|
-|2020.10.20|1.修复mapper2 insert代码问题(感谢@mXiaoWan的PR)
2.优化对fulltext/index关键字的处理(感谢@WEGFan的反馈)。
3.新增日期类型的转换选择(感谢@qingkediguo的建议)。
4.新增是否包装类型的转换选择。|
+|2020.10.20|1.修复mapper2 insert代码问题(感谢@mXiaoWan的PR)
2.优化对fulltext/index关键字的处理(感谢@WEGFan的反馈)。
3.新增日期类型的转换选择(感谢@qingkediguo的建议)。
4.新增是否包装类型的转换选择(感谢@gzlicanyi的建议)。|
|2020.06.28|优化Util下的BeanUtil,支持更多map.put的操作。整合CRUD模板到SQL(CRUD)模板。|
|2020.06.21|修复FreemarkerUtil的Path问题导致JAR包运行时无法获取template的问题。|
|2020.05.25|1.一些fix,关于封装工具类以及layui模板优化等.
2.优化表备注的获取逻辑.
3.生成时间格式改为yyyy-MM-dd,移除具体的时间,只保留日期|
diff --git a/generator-web/src/main/resources/template.json b/generator-web/src/main/resources/template.json
index 607e479..e95dad1 100644
--- a/generator-web/src/main/resources/template.json
+++ b/generator-web/src/main/resources/template.json
@@ -130,11 +130,16 @@
},
{
"id": "61",
+ "name": "plusservice",
+ "description": "plusservice"
+ },
+ {
+ "id": "62",
"name": "plusmapper",
"description": "plusmapper"
},
{
- "id": "62",
+ "id": "63",
"name": "plusentity",
"description": "plusentity"
}
diff --git a/generator-web/src/main/resources/templates/code-generator/beetlsql/beetlcontroller.ftl b/generator-web/src/main/resources/templates/code-generator/beetlsql/beetlcontroller.ftl
index 7fdd649..65be758 100644
--- a/generator-web/src/main/resources/templates/code-generator/beetlsql/beetlcontroller.ftl
+++ b/generator-web/src/main/resources/templates/code-generator/beetlsql/beetlcontroller.ftl
@@ -27,10 +27,10 @@ public class ${classInfo.className}Controller {
${classInfo.className} ${classInfo.className?uncap_first}=sqlManager.unique(${classInfo.className}.class,${classInfo.className?uncap_first}.getId());
if(${classInfo.className?uncap_first}!=null){
sqlManager.updateById(${classInfo.className?uncap_first});
- return ${returnUtil}.success("编辑成功");
+ return ${returnUtilSuccess}("编辑成功");
}else{
sqlManager.insert(${classInfo.className?uncap_first});
- return ${returnUtil}.error("保存成功");
+ return ${returnUtilFailure}("保存成功");
}
}
@@ -42,9 +42,9 @@ public class ${classInfo.className}Controller {
${classInfo.className} ${classInfo.className?uncap_first}=sqlManager.unique(${classInfo.className}.class,id);
if(${classInfo.className?uncap_first}!=null){
sqlManager.deleteById(id);
- return ${returnUtil}.success("删除成功");
+ return ${returnUtilSuccess}("删除成功");
}else{
- return ${returnUtil}.error("没有找到该对象");
+ return ${returnUtilFailure}("没有找到该对象");
}
}
@@ -55,9 +55,9 @@ public class ${classInfo.className}Controller {
public Object find(int id){
${classInfo.className} ${classInfo.className?uncap_first}=sqlManager.unique(${classInfo.className}.class,id);
if(${classInfo.className?uncap_first}!=null){
- return ${returnUtil}.success(${classInfo.className?uncap_first});
+ return ${returnUtilSuccess}(${classInfo.className?uncap_first});
}else{
- return ${returnUtil}.error("没有找到该对象");
+ return ${returnUtilFailure}("没有找到该对象");
}
}
@@ -69,7 +69,7 @@ public class ${classInfo.className}Controller {
@RequestParam(required = false, defaultValue = "0") int pageNumber,
@RequestParam(required = false, defaultValue = "10") int pageSize) {
List<${classInfo.className}> list = sqlManager.query(${classInfo.className}.class).select();
- return ${returnUtil}.success(list);
+ return ${returnUtilSuccess}(list);
}
}
diff --git a/generator-web/src/main/resources/templates/code-generator/jpa/jpacontroller.ftl b/generator-web/src/main/resources/templates/code-generator/jpa/jpacontroller.ftl
index 750e4d5..c6c9829 100644
--- a/generator-web/src/main/resources/templates/code-generator/jpa/jpacontroller.ftl
+++ b/generator-web/src/main/resources/templates/code-generator/jpa/jpacontroller.ftl
@@ -42,9 +42,9 @@ public class ${classInfo.className}Controller {
Optional<${classInfo.className}> ${classInfo.className?uncap_first}=${classInfo.className?uncap_first}Repository.findById(id);
if(${classInfo.className?uncap_first}.isPresent()){
${classInfo.className?uncap_first}Repository.deleteById(id);
- return ${returnUtil}.success("删除成功");
+ return ${returnUtilSuccess}("删除成功");
}else{
- return ${returnUtil}.error("没有找到该对象");
+ return ${returnUtilFailure}("没有找到该对象");
}
}
@@ -55,9 +55,9 @@ public class ${classInfo.className}Controller {
public Object find(int id){
Optional<${classInfo.className}> ${classInfo.className?uncap_first}=${classInfo.className?uncap_first}Repository.findById(id);
if(${classInfo.className?uncap_first}.isPresent()){
- return ${returnUtil}.success(${classInfo.className?uncap_first}.get());
+ return ${returnUtilSuccess}(${classInfo.className?uncap_first}.get());
}else{
- return ${returnUtil}.error("没有找到该对象");
+ return ${returnUtilFailure}("没有找到该对象");
}
}
diff --git a/generator-web/src/main/resources/templates/code-generator/mybatis-plus/pluscontroller.ftl b/generator-web/src/main/resources/templates/code-generator/mybatis-plus/pluscontroller.ftl
index 1c35979..f18e442 100644
--- a/generator-web/src/main/resources/templates/code-generator/mybatis-plus/pluscontroller.ftl
+++ b/generator-web/src/main/resources/templates/code-generator/mybatis-plus/pluscontroller.ftl
@@ -18,7 +18,7 @@ import java.util.List;
import java.util.Map;
#if>
/**
-* @description ${classInfo.classComment}
+* @description ${classInfo.classComment}控制器
* @author ${authorName}
* @date ${.now?string('yyyy-MM-dd')}
*/
@@ -42,12 +42,12 @@ public class ${classInfo.className}Controller {
${classInfo.className?uncap_first}Mapper.updateById(${classInfo.className?uncap_first});
}else{
if(${classInfo.className?uncap_first}Mapper.selectOne(new QueryWrapper<${classInfo.className}>().eq("${classInfo.className?uncap_first}_name",${classInfo.className?uncap_first}.get${classInfo.className}Name()))!=null){
- return ${returnUtil}.ERROR("保存失败,名字重复");
+ return ${returnUtilFailure}("保存失败,名字重复");
}
${classInfo.className?uncap_first}.setCreateTime(new Date());
${classInfo.className?uncap_first}Mapper.insert(${classInfo.className?uncap_first});
}
- return ${returnUtil}.SUCCESS("保存成功");
+ return ${returnUtilSuccess}("保存成功");
}
/**
@@ -58,9 +58,9 @@ public class ${classInfo.className}Controller {
${classInfo.className} ${classInfo.className?uncap_first} = ${classInfo.className?uncap_first}Mapper.selectOne(new QueryWrapper<${classInfo.className}>().eq("${classInfo.className?uncap_first}_id",id));
if(${classInfo.className?uncap_first}!=null){
${classInfo.className?uncap_first}Mapper.deleteById(id);
- return ${returnUtil}.SUCCESS("删除成功");
+ return ${returnUtilSuccess}("删除成功");
}else{
- return ${returnUtil}.ERROR("没有找到该对象");
+ return ${returnUtilFailure}("没有找到该对象");
}
}
@@ -71,9 +71,9 @@ public class ${classInfo.className}Controller {
public Object find(int id){
${classInfo.className} ${classInfo.className?uncap_first} = ${classInfo.className?uncap_first}Mapper.selectOne(new QueryWrapper<${classInfo.className}>().eq("${classInfo.className?uncap_first}_id",id));
if(${classInfo.className?uncap_first}!=null){
- return ${returnUtil}.SUCCESS(${classInfo.className?uncap_first});
+ return ${returnUtilSuccess}(${classInfo.className?uncap_first});
}else{
- return ${returnUtil}.ERROR("没有找到该对象");
+ return ${returnUtilFailure}("没有找到该对象");
}
}
@@ -101,8 +101,8 @@ public class ${classInfo.className}Controller {
/**
* 手工分页查询(按需使用)
*/
- @PostMapping("/list2")
- public ReturnT list2(String searchParams,
+ /*@PostMapping("/list2")
+ public Object list2(String searchParams,
@RequestParam(required = false, defaultValue = "0") int page,
@RequestParam(required = false, defaultValue = "10") int limit) {
log.info("searchParams:"+ JSON.toJSONString(searchParams));
@@ -116,8 +116,8 @@ public class ${classInfo.className}Controller {
List<${classInfo.className}> itemList = ${classInfo.className?uncap_first}Mapper.pageAll(queryParamDTO,(page - 1)* limit,limit);
Integer itemCount = ${classInfo.className?uncap_first}Mapper.countAll(queryParamDTO);
//返回结果
- return ReturnT.PAGE(itemList,itemCount);
- }
+ return ${returnUtilSuccess}.PAGE(itemList,itemCount);
+ }*/
@GetMapping("/list")
public ModelAndView listPage(){
return new ModelAndView("${classInfo.className?uncap_first}-list");
@@ -139,11 +139,11 @@ public class ${classInfo.className}Controller {
${classInfo.className?uncap_first}.setUpdateTime(new Date());
${classInfo.className?uncap_first}.setStatus(status);
${classInfo.className?uncap_first}Mapper.updateById(${classInfo.className?uncap_first});
- return ReturnT.SUCCESS((status==1)?"已发布":"已暂停");
+ return ${returnUtilSuccess}((status==1)?"已发布":"已暂停");
}else if(status.equals(${classInfo.className?uncap_first}.getStatus())){
- return ReturnT.SUCCESS("状态不正确");
+ return ${returnUtilFailure}("状态不正确");
}else{
- return ReturnT.ERROR();
+ return ${returnUtilFailure}();
}
}
@@ -152,7 +152,7 @@ public class ${classInfo.className}Controller {
*/
@PostMapping("/execute")
public Object execute(){
- return ReturnT.SUCCESS();
+ return ${returnUtilSuccess};
}
}
}
diff --git a/generator-web/src/main/resources/templates/code-generator/mybatis-plus/plusmapper.ftl b/generator-web/src/main/resources/templates/code-generator/mybatis-plus/plusmapper.ftl
index 6859a12..438b514 100644
--- a/generator-web/src/main/resources/templates/code-generator/mybatis-plus/plusmapper.ftl
+++ b/generator-web/src/main/resources/templates/code-generator/mybatis-plus/plusmapper.ftl
@@ -7,7 +7,7 @@ import ${packageName}.entity.${classInfo.className};
import java.util.List;
#if>
/**
- * @description ${classInfo.classComment}
+ * @description ${classInfo.classComment}Mapper
* @author ${authorName}
* @date ${.now?string('yyyy-MM-dd')}
*/
diff --git a/generator-web/src/main/resources/templates/code-generator/mybatis-plus/plusservice.ftl b/generator-web/src/main/resources/templates/code-generator/mybatis-plus/plusservice.ftl
new file mode 100644
index 0000000..4672e01
--- /dev/null
+++ b/generator-web/src/main/resources/templates/code-generator/mybatis-plus/plusservice.ftl
@@ -0,0 +1,16 @@
+<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.service;#if>
+<#if isAutoImport?exists && isAutoImport==true>
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.IService;
+#if>
+/**
+ * @description ${classInfo.classComment}服务层
+ * @author ${authorName}
+ * @date ${.now?string('yyyy-MM-dd')}
+ */
+@Service
+public interface ${classInfo.className}Service extends IService<${classInfo.className}> {
+
+
+
+}
diff --git a/generator-web/src/main/resources/templates/code-generator/mybatis/controller.ftl b/generator-web/src/main/resources/templates/code-generator/mybatis/controller.ftl
index 59ab527..69697c7 100644
--- a/generator-web/src/main/resources/templates/code-generator/mybatis/controller.ftl
+++ b/generator-web/src/main/resources/templates/code-generator/mybatis/controller.ftl
@@ -28,7 +28,7 @@ public class ${classInfo.className}Controller {
* @date ${.now?string('yyyy/MM/dd')}
**/
@RequestMapping("/insert")
- public ReturnT insert(${classInfo.className} ${classInfo.className?uncap_first}){
+ public Object insert(${classInfo.className} ${classInfo.className?uncap_first}){
return ${classInfo.className?uncap_first}Service.insert(${classInfo.className?uncap_first});
}
@@ -58,7 +58,7 @@ public class ${classInfo.className}Controller {
* @date ${.now?string('yyyy/MM/dd')}
**/
@RequestMapping("/load")
- public ReturnT load(int id){
+ public Object load(int id){
return ${classInfo.className?uncap_first}Service.load(id);
}
diff --git a/generator-web/src/main/resources/templates/code-generator/mybatis/mybatis.ftl b/generator-web/src/main/resources/templates/code-generator/mybatis/mybatis.ftl
index 4765b68..9a583f5 100644
--- a/generator-web/src/main/resources/templates/code-generator/mybatis/mybatis.ftl
+++ b/generator-web/src/main/resources/templates/code-generator/mybatis/mybatis.ftl
@@ -25,7 +25,7 @@
<#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0>
<#list classInfo.fieldList as fieldItem >
<#if fieldItem.columnName != "id" >
- ${r""}
+
${fieldItem.columnName}<#if fieldItem_has_next>,#if>
${r""}
#if>
@@ -41,7 +41,7 @@
NOW()<#if fieldItem_has_next>,#if>
${r""}
<#else>-->
- ${r""}
+
${r"#{"}${fieldItem.fieldName}${r"}"}<#if fieldItem_has_next>,#if>
${r""}
<#--#if>-->
@@ -61,7 +61,7 @@
<#list classInfo.fieldList as fieldItem >
<#if fieldItem.columnName != "id" && fieldItem.columnName != "AddTime" && fieldItem.columnName != "UpdateTime" >
- ${r""}${fieldItem.columnName} = ${r"#{"}${fieldItem.fieldName}${r"}"}<#if fieldItem_has_next>,#if>${r""}
+ ${fieldItem.columnName} = ${r"#{"}${fieldItem.fieldName}${r"}"}<#if fieldItem_has_next>,#if>${r""}
#if>
#list>
diff --git a/generator-web/src/main/resources/templates/code-generator/mybatis/service.ftl b/generator-web/src/main/resources/templates/code-generator/mybatis/service.ftl
index 6684ea0..c31f30b 100644
--- a/generator-web/src/main/resources/templates/code-generator/mybatis/service.ftl
+++ b/generator-web/src/main/resources/templates/code-generator/mybatis/service.ftl
@@ -11,17 +11,17 @@ public interface ${classInfo.className}Service {
/**
* 新增
*/
- public ReturnT insert(${classInfo.className} ${classInfo.className?uncap_first});
+ public Object insert(${classInfo.className} ${classInfo.className?uncap_first});
/**
* 删除
*/
- public ReturnT delete(int id);
+ public Object delete(int id);
/**
* 更新
*/
- public ReturnT update(${classInfo.className} ${classInfo.className?uncap_first});
+ public Object update(${classInfo.className} ${classInfo.className?uncap_first});
/**
* 根据主键 id 查询
diff --git a/generator-web/src/main/resources/templates/code-generator/mybatis/service_impl.ftl b/generator-web/src/main/resources/templates/code-generator/mybatis/service_impl.ftl
index 16fbe1f..3a8345d 100644
--- a/generator-web/src/main/resources/templates/code-generator/mybatis/service_impl.ftl
+++ b/generator-web/src/main/resources/templates/code-generator/mybatis/service_impl.ftl
@@ -19,29 +19,29 @@ public class ${classInfo.className}ServiceImpl implements ${classInfo.className}
@Override
- public ReturnT insert(${classInfo.className} ${classInfo.className?uncap_first}) {
+ public Object insert(${classInfo.className} ${classInfo.className?uncap_first}) {
// valid
if (${classInfo.className?uncap_first} == null) {
- return ${returnUtil}.ERROR("必要参数缺失");
+ return ${returnUtilFailure}("必要参数缺失");
}
${classInfo.className?uncap_first}Mapper.insert(${classInfo.className?uncap_first});
- return ${returnUtil}.SUCCESS;
+ return ${returnUtilSuccess}();
}
@Override
- public ReturnT delete(int id) {
+ public Object delete(int id) {
int ret = ${classInfo.className?uncap_first}Mapper.delete(id);
- return ret>0?${returnUtil}.SUCCESS():${returnUtil}.ERROR();
+ return ret>0?${returnUtilSuccess}():${returnUtilFailure}();
}
@Override
- public ReturnT update(${classInfo.className} ${classInfo.className?uncap_first}) {
+ public Object update(${classInfo.className} ${classInfo.className?uncap_first}) {
int ret = ${classInfo.className?uncap_first}Mapper.update(${classInfo.className?uncap_first});
- return ret>0?${returnUtil}.SUCCESS():${returnUtil}.ERROR();
+ return ret>0?${returnUtilSuccess}():${returnUtilFailure}();
}
diff --git a/generator-web/src/main/resources/templates/headerCDN.html b/generator-web/src/main/resources/templates/header-CDN.html
similarity index 57%
rename from generator-web/src/main/resources/templates/headerCDN.html
rename to generator-web/src/main/resources/templates/header-CDN.html
index 6fda821..7877116 100644
--- a/generator-web/src/main/resources/templates/headerCDN.html
+++ b/generator-web/src/main/resources/templates/header-CDN.html
@@ -8,12 +8,19 @@
+
+
+
+
+
+
+
@@ -23,7 +30,10 @@
-
+
+
-
-
\ No newline at end of file
+
+
+
+
\ No newline at end of file
diff --git a/generator-web/src/main/resources/templates/header-local.html b/generator-web/src/main/resources/templates/header-local.html
new file mode 100644
index 0000000..368f32b
--- /dev/null
+++ b/generator-web/src/main/resources/templates/header-local.html
@@ -0,0 +1,50 @@
+
+
+
+SQL转Java JPA、MYBATIS实现类代码生成平台
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/generator-web/src/main/resources/templates/header.html b/generator-web/src/main/resources/templates/header.html
index 368f32b..0ebed81 100644
--- a/generator-web/src/main/resources/templates/header.html
+++ b/generator-web/src/main/resources/templates/header.html
@@ -1,50 +1 @@
-
-
-
-SQL转Java JPA、MYBATIS实现类代码生成平台
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+<#include "/header-local.html">
\ No newline at end of file