持续学习&持续更新中…
守破离
【开发工具】EasyCode
- EasyCode
- EasyCode配置
- EasyCode的使用
- 参考
使用MyBatis-Generator生成的po对象并不能很好的满足数据库字段类型与Java类型的映射关系(比如SMALLINT UNSIGNED —> Integer),这是我们就可以使用EasyCode这个工具了
- https://github.com/makejavas/EasyCode
- https://gitee.com/makejava/EasyCode/wikis/pages
要想使用,将如下内容命名为EasyCodeConfig.json,然后从IDEA导入即可。
{
"author": "lpruoyu",
"version": "1.2.4",
"userSecure": "",
"currTypeMapperGroupName": "lp",
"currTemplateGroupName": "MybatisPlus_lp",
"currColumnConfigGroupName": "Default",
"currGlobalConfigGroupName": "Default",
"typeMapper": {
"lp": {
"name": "lp",
"elementList": [
{
"matchType": "REGEX",
"columnType": "varchar(\(\d+\))?",
"javaType": "java.lang.String"
},
{
"matchType": "REGEX",
"columnType": "char(\(\d+\))?",
"javaType": "java.lang.String"
},
{
"matchType": "ORDINARY",
"columnType": "text",
"javaType": "java.lang.String"
},
{
"matchType": "REGEX",
"columnType": "decimal(\(\d+,\d+\))?",
"javaType": "java.lang.Double"
},
{
"matchType": "REGEX",
"columnType": "decimal(\(\d+\))?",
"javaType": "java.lang.Double"
},
{
"matchType": "ORDINARY",
"columnType": "integer",
"javaType": "java.lang.Integer"
},
{
"matchType": "REGEX",
"columnType": "int(\(\d+\))?",
"javaType": "java.lang.Integer"
},
{
"matchType": "ORDINARY",
"columnType": "int4",
"javaType": "java.lang.Integer"
},
{
"matchType": "ORDINARY",
"columnType": "int8",
"javaType": "java.lang.Long"
},
{
"matchType": "REGEX",
"columnType": "bigint(\(\d+\))?",
"javaType": "java.lang.Long"
},
{
"matchType": "ORDINARY",
"columnType": "datetime",
"javaType": "java.util.Date"
},
{
"matchType": "ORDINARY",
"columnType": "timestamp",
"javaType": "java.util.Date"
},
{
"matchType": "ORDINARY",
"columnType": "bool",
"javaType": "java.lang.Boolean"
},
{
"matchType": "ORDINARY",
"columnType": "boolean",
"javaType": "java.lang.Boolean"
},
{
"matchType": "REGEX",
"columnType": "tinyint(\(\d+\))?",
"javaType": "java.lang.Byte"
},
{
"matchType": "REGEX",
"columnType": "tinyint(\(\d+\))? unsigned",
"javaType": "java.lang.Short"
},
{
"matchType": "REGEX",
"columnType": "smallint(\(\d+\))?",
"javaType": "java.lang.Short"
},
{
"matchType": "REGEX",
"columnType": "smallint(\(\d+\))? unsigned",
"javaType": "java.lang.Integer"
},
{
"matchType": "REGEX",
"columnType": "mediumint(\(\d+\))?",
"javaType": "java.lang.Integer"
},
{
"matchType": "REGEX",
"columnType": "mediumint(\(\d+\))? unsigned",
"javaType": "java.lang.Integer"
},
{
"matchType": "REGEX",
"columnType": "int(\(\d+\))? unsigned",
"javaType": "java.lang.Long"
},
{
"matchType": "REGEX",
"columnType": "bigint(\(\d+\))? unsigned",
"javaType": "java.math.BigInteger"
}
]
}
},
"template": {
"MybatisPlus_lp": {
"name": "MybatisPlus_lp",
"elementList": [
{
"name": "controller.java.vm",
"code": "##导入宏定义n$!{define.vm}nn##设置表后缀(宏定义)n#setTableSuffix("Controller")nn##保存文件(宏定义)n#save("/controller", "Controller.java")nn##定义服务名n#set($serviceName = $!tool.append($!tool.firstLowerCase($!tableInfo.name), "Service"))nn##定义实体对象名n#set($entityName = $!tool.firstLowerCase($!tableInfo.name))nn##包路径(宏定义)n#setPackageSuffix("controller")nnimport org.springframework.beans.factory.annotation.Autowired;nimport org.springframework.web.bind.annotation.RestController;nimport org.springframework.web.bind.annotation.RequestMapping;nimport programmer.lp.jk.service.$!{tableInfo.name}Service;nn@RestControllern@RequestMapping("/$!tool.firstLowerCase($!tableInfo.name)s")npublic class $!{tableName} {n @Autowiredn private $!{tableInfo.name}Service service;n n}n"
},
{
"name": "dao.java.vm",
"code": "##导入宏定义n$!{define.vm}nn##定义实体对象名n#set($entityName = $!tool.firstUpperCase($!tableInfo.name))nn##设置表后缀(宏定义)n#setTableSuffix("Mapper")nn##保存文件(宏定义)n#save("/mapper", "Mapper.java")nn##包路径(宏定义)n#setPackageSuffix("mapper")nnimport com.baomidou.mybatisplus.core.mapper.BaseMapper;nimport programmer.lp.jk.pojo.po.$!entityName;nnpublic interface $!{entityName}Mapper extends BaseMapper<$!entityName> {n}"
},
{
"name": "entity.java.vm",
"code": "##导入宏定义n$!{define.vm}nn##保存文件(宏定义)n#save("/pojo/po", ".java")nn##包路径(宏定义)n#setPackageSuffix("pojo.po")nnimport lombok.AllArgsConstructor;nimport lombok.Data;nimport lombok.NoArgsConstructor;nn@Datan@NoArgsConstructorn@AllArgsConstructornpublic class $!{tableInfo.name} {n#foreach($column in $tableInfo.fullColumn)n #if(${column.comment})//${column.comment}#endnn private $!{tool.getClsNameByFullName($column.type)} $!{column.name};n#endn}n"
},
{
"name": "service.java.vm",
"code": "##导入宏定义n$!{define.vm}nn##设置表后缀(宏定义)n#setTableSuffix("Service")nn##保存文件(宏定义)n#save("/service", "Service.java")nn##包路径(宏定义)n#setPackageSuffix("service")nnimport com.baomidou.mybatisplus.extension.service.IService;nimport $!{tableInfo.savePackageName}.pojo.po.$!tableInfo.name;nnpublic interface $!{tableName} extends IService<$!tableInfo.name> {nn}n"
},
{
"name": "serviceImpl.java.vm",
"code": "##导入宏定义n$!{define.vm}nn##设置表后缀(宏定义)n#setTableSuffix("ServiceImpl")nn##保存文件(宏定义)n#save("/service/impl", "ServiceImpl.java")nn##包路径(宏定义)n#setPackageSuffix("service.impl")nnimport com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;nimport org.springframework.stereotype.Service;nimport org.springframework.beans.factory.annotation.Autowired;nimport org.springframework.transaction.annotation.Transactional;nimport $!{tableInfo.savePackageName}.mapper.$!{tableInfo.name}Mapper;nimport $!{tableInfo.savePackageName}.pojo.po.$!{tableInfo.name};nimport $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;nn@Transactionaln@Service("$!tool.firstLowerCase($tableInfo.name)Service")npublic class $!{tableName} extends ServiceImpl<$!{tableInfo.name}Mapper, $!{tableInfo.name}> implements $!{tableInfo.name}Service {n @Autowiredn private $!{tableInfo.name}Mapper mapper;n n}n"
}
]
}
},
"columnConfig": {},
"globalConfig": {}
}
EasyCode的使用
参考
小码哥-李明杰: Java从0到架构师③进阶互联网架构师.
本文完,感谢您的关注支持!



