Skip to content

Commit 67185ad

Browse files
committed
| 2025.12.09 | 优化Mybatis模板
1 parent 2a354f7 commit 67185ad

File tree

5 files changed

+139
-25
lines changed

5 files changed

+139
-25
lines changed

src/main/resources/templates/code-generator/mybatis/controller.ftl

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,9 @@ public class ${classInfo.className}Controller {
5757
* @author ${authorName}
5858
* @date ${.now?string('yyyy/MM/dd')}
5959
**/
60-
@RequestMapping("/load")
61-
public Object load(int id){
62-
return ${classInfo.className?uncap_first}Service.load(id);
60+
@RequestMapping("/find")
61+
public Object find(int id){
62+
return ${classInfo.className?uncap_first}Service.find(id);
6363
}
6464

6565
/**
@@ -73,4 +73,34 @@ public class ${classInfo.className}Controller {
7373
return ${classInfo.className?uncap_first}Service.pageList(offset, pagesize);
7474
}
7575

76+
/**
77+
* 查询 动态条件分页查询 - 根据对象属性自动构建条件
78+
* 如果字段有值则进行分页+指定条件查询,否则仅进行分页查询
79+
* @author ${authorName}
80+
* @date ${.now?string('yyyy/MM/dd')}
81+
**/
82+
@RequestMapping("/pageByCondition")
83+
public Map<String, Object> pageByCondition(${classInfo.className} queryParamDTO,
84+
@RequestParam(required = false, defaultValue = "0") int offset,
85+
@RequestParam(required = false, defaultValue = "10") int pagesize) {
86+
return ${classInfo.className?uncap_first}Service.pageByCondition(queryParamDTO, offset, pagesize);
87+
}
88+
89+
/**
90+
* 激活/停用
91+
* @author ${authorName}
92+
* @date ${.now?string('yyyy/MM/dd')}
93+
**/
94+
@RequestMapping("/active")
95+
public Object active(int id, Integer status) {
96+
${classInfo.className} ${classInfo.className?uncap_first} = ${classInfo.className?uncap_first}Service.find(id);
97+
if(${classInfo.className?uncap_first} != null) {
98+
${classInfo.className?uncap_first}.setStatus(status);
99+
Object result = ${classInfo.className?uncap_first}Service.update(${classInfo.className?uncap_first});
100+
return result;
101+
} else {
102+
return ${returnUtilFailure}("未找到记录");
103+
}
104+
}
105+
76106
}

src/main/resources/templates/code-generator/mybatis/mapper.ftl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public interface ${classInfo.className}Mapper {
4040
* @author ${authorName}
4141
* @date ${.now?string('yyyy/MM/dd')}
4242
**/
43-
${classInfo.className} load(int id);
43+
${classInfo.className} find(int id);
4444

4545
/**
4646
* 查询 分页查询

src/main/resources/templates/code-generator/mybatis/mapper2.ftl

Lines changed: 82 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,33 @@ import java.util.List;
1313
@Repository
1414
public interface ${classInfo.className}Mapper {
1515

16-
@Select("select * from ${classInfo.tableName} where ${classInfo.tableName}_id=井{id}")
17-
public ${classInfo.className} getById(Integer id);
16+
@Select("""
17+
select * from ${classInfo.tableName} where ${classInfo.tableName}_id=井{id}
18+
""")
19+
public ${classInfo.className} find(Integer id);
1820

1921
@Options(useGeneratedKeys=true,keyProperty="${classInfo.className?uncap_first}Id")
20-
@Insert("insert into ${classInfo.tableName}" +
21-
" (<#list classInfo.fieldList as fieldItem >${fieldItem.columnName}<#if fieldItem_has_next>,</#if></#list>)" +
22-
" values(<#list classInfo.fieldList as fieldItem >${fieldItem.fieldName}<#if fieldItem_has_next>,<#else>)</#if></#list>")
22+
@Insert("""
23+
insert into ${classInfo.tableName} (
24+
<#list classInfo.fieldList as fieldItem >${fieldItem.columnName}<#if fieldItem_has_next>,</#if></#list>
25+
) values (
26+
<#list classInfo.fieldList as fieldItem >井{${fieldItem.fieldName}}<#if fieldItem_has_next>,<#else>)</#if></#list>
27+
)
28+
""")
2329
public Integer insert(${classInfo.className} ${classInfo.className?uncap_first});
2430

25-
@Delete(value = "delete from ${classInfo.tableName} where ${classInfo.tableName}_id=井{${classInfo.className?uncap_first}Id}")
31+
@Delete("""
32+
delete from ${classInfo.tableName} where ${classInfo.tableName}_id=井{id}
33+
""")
2634
boolean delete(Integer id);
2735

28-
@Update(value = "update ${classInfo.tableName} set "
29-
<#list classInfo.fieldList as fieldItem >
30-
<#if fieldItem.columnName != "id">+" ${fieldItem.columnName}=井{${fieldItem.fieldName}}<#if fieldItem_has_next>,</#if>"</#if>
31-
</#list>
32-
+" where ${classInfo.tableName}_id=井{${classInfo.className?uncap_first}Id} ")
36+
@Update("""
37+
update ${classInfo.tableName} set
38+
<#list classInfo.fieldList as fieldItem >
39+
<#if fieldItem.columnName != "id">${fieldItem.columnName}=井{${fieldItem.fieldName}}<#if fieldItem_has_next>,</#if></#if>
40+
</#list>
41+
where ${classInfo.tableName}_id=井{id}
42+
""")
3343
boolean update(${classInfo.className} ${classInfo.className?uncap_first});
3444

3545

@@ -38,19 +48,73 @@ public interface ${classInfo.className}Mapper {
3848
@Result(property = "${fieldItem.fieldName}", column = "${fieldItem.columnName}")<#if fieldItem_has_next>,</#if>
3949
</#list>
4050
})
41-
@Select(value = "select * from ${classInfo.tableName} where ${classInfo.tableName}_id=井{queryParam}")
42-
${classInfo.className} selectOne(String queryParam);
51+
@Select("""
52+
select * from ${classInfo.tableName} where ${classInfo.tableName}_id=井{id}
53+
""")
54+
${classInfo.className} selectOne(Integer id);
4355

4456
@Results(value = {
4557
<#list classInfo.fieldList as fieldItem >
4658
@Result(property = "${fieldItem.fieldName}", column = "${fieldItem.columnName}")<#if fieldItem_has_next>,</#if>
4759
</#list>
4860
})
49-
@Select(value = "select * from ${classInfo.tableName} where "
50-
<#list classInfo.fieldList as fieldItem >
51-
+" ${fieldItem.columnName}=井{${fieldItem.fieldName}}<#if fieldItem_has_next> or </#if>"
52-
</#list>
53-
)
61+
@Select("""
62+
select * from ${classInfo.tableName} where
63+
<#list classInfo.fieldList as fieldItem >
64+
${fieldItem.columnName}=井{${fieldItem.fieldName}}<#if fieldItem_has_next> or </#if>
65+
</#list>
66+
""")
5467
List<${classInfo.className}> selectList(${classInfo.className} ${classInfo.className?uncap_first});
5568

69+
/**
70+
* 动态条件分页查询 - 根据对象属性自动构建条件
71+
* 如果字段有值则进行分页+指定条件查询,否则仅进行分页查询
72+
*/
73+
@Select("""
74+
<script>
75+
SELECT * FROM ${classInfo.tableName}
76+
<where>
77+
<#list classInfo.fieldList as fieldItem>
78+
<#if fieldItem.fieldClass?contains("String")>
79+
<if test='queryParamDTO.${fieldItem.fieldName} != null and queryParamDTO.${fieldItem.fieldName} != ""'>
80+
AND ${fieldItem.columnName} = 井{queryParamDTO.${fieldItem.fieldName}}
81+
</if>
82+
<#else>
83+
<if test='queryParamDTO.${fieldItem.fieldName} != null'>
84+
AND ${fieldItem.columnName} = 井{queryParamDTO.${fieldItem.fieldName}}
85+
</if>
86+
</#if>
87+
</#list>
88+
</where>
89+
ORDER BY id DESC
90+
LIMIT 井{offset}, 井{limit}
91+
</script>
92+
""")
93+
List<${classInfo.className}> pageByCondition(@Param("queryParamDTO") ${classInfo.className} queryParamDTO,
94+
@Param("offset") int offset,
95+
@Param("limit") int limit);
96+
97+
/**
98+
* 动态条件分页查询总数
99+
*/
100+
@Select("""
101+
<script>
102+
SELECT COUNT(*) FROM ${classInfo.tableName}
103+
<where>
104+
<#list classInfo.fieldList as fieldItem>
105+
<#if fieldItem.fieldClass?contains("String")>
106+
<if test='queryParamDTO.${fieldItem.fieldName} != null and queryParamDTO.${fieldItem.fieldName} != ""'>
107+
AND ${fieldItem.columnName} = 井{queryParamDTO.${fieldItem.fieldName}}
108+
</if>
109+
<#else>
110+
<if test='queryParamDTO.${fieldItem.fieldName} != null'>
111+
AND ${fieldItem.columnName} = 井{queryParamDTO.${fieldItem.fieldName}}
112+
</if>
113+
</#if>
114+
</#list>
115+
</where>
116+
</script>
117+
""")
118+
int pageByConditionCount(@Param("queryParamDTO") ${classInfo.className} queryParamDTO);
119+
56120
}

src/main/resources/templates/code-generator/mybatis/service.ftl

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,17 @@ public interface ${classInfo.className}Service {
2626
/**
2727
* 根据主键 id 查询
2828
*/
29-
public ${classInfo.className} load(int id);
29+
public ${classInfo.className} find(int id);
3030

3131
/**
3232
* 分页查询
3333
*/
3434
public Map<String,Object> pageList(int offset, int pagesize);
3535

36+
/**
37+
* 动态条件分页查询 - 根据对象属性自动构建条件
38+
* 如果字段有值则进行分页+指定条件查询,否则仅进行分页查询
39+
*/
40+
public Map<String,Object> pageByCondition(${classInfo.className} queryParamDTO, int offset, int pagesize);
41+
3642
}

src/main/resources/templates/code-generator/mybatis/service_impl.ftl

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ public class ${classInfo.className}ServiceImpl implements ${classInfo.className}
4646

4747

4848
@Override
49-
public ${classInfo.className} load(int id) {
50-
return ${classInfo.className?uncap_first}Mapper.load(id);
49+
public ${classInfo.className} find(int id) {
50+
return ${classInfo.className?uncap_first}Mapper.find(id);
5151
}
5252

5353

@@ -65,4 +65,18 @@ public class ${classInfo.className}ServiceImpl implements ${classInfo.className}
6565
return result;
6666
}
6767

68+
@Override
69+
public Map<String,Object> pageByCondition(${classInfo.className} queryParamDTO, int offset, int pagesize) {
70+
71+
List<${classInfo.className}> pageList = ${classInfo.className?uncap_first}Mapper.pageByCondition(queryParamDTO, offset, pagesize);
72+
int totalCount = ${classInfo.className?uncap_first}Mapper.pageByConditionCount(queryParamDTO);
73+
74+
// result
75+
Map<String, Object> result = new HashMap<String, Object>();
76+
result.put("pageList", pageList);
77+
result.put("totalCount", totalCount);
78+
79+
return result;
80+
}
81+
6882
}

0 commit comments

Comments
 (0)