文章目录
-
-
- AddDTO
- updateDTO
- 实体类
- controller控制层
- dao层,数据持久层
- dao层联络数据库,xml文件
- 业务逻辑层(接口)
- 业务逻辑层(实现)
AddDTO
## addDTO类
##导入宏定义
$!{define.vm}
##保存文件(宏定义)
#save("/domain/dto", "AddDTO.java")
##包路径(宏定义)
#setPackageSuffix("domain.dto")
##自动导入包(全局变量)
$!autoImport
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
##表注释(宏定义)
#tableComment("-AddDTO")
@TableName("$!{tableInfo.obj.name}")
public class $!{tableInfo.name}AddDTO implements Serializable {
private static final long serialVersionUID = 1L;
#foreach($column in $tableInfo.fullColumn)
#if(${column.comment})
#end
## 测试数据校验,VM模板好像不行## #if(${column.obj} || ${column.type} == "VARCHAR")${"\n"}#end#if($column.obj)#if($column.type == "VARCHAR")@NotBlank(message="[${column.comment}]不能为空")#else@NotNull(message="[${column.comment}]不能为空")#end#end#if($column.type == "VARCHAR")#if($column)${"\n"}#end@Size(max = ${column.length}, message = "[${column.comment}]长度不能超过${column.length}")#end
#if(${column.comment})
@ApiModelProperty("${column.comment}")
#end
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
#foreach($column in $tableInfo.fullColumn)
#getSetMethod($column)
#end
#foreach($column in $tableInfo.pkColumn)
#break
#end
}
updateDTO
## updateDTO类
##导入宏定义
$!{define.vm}
##保存文件(宏定义)
#save("/domain/dto", "UpdateDTO.java")
##包路径(宏定义)
#setPackageSuffix("domain.dto")
##自动导入包(全局变量)
$!autoImport
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
##表注释(宏定义)
#tableComment("-UpdateDTO")
@TableName("$!{tableInfo.obj.name}")
public class $!{tableInfo.name}UpdateDTO implements Serializable {
#foreach($column in $tableInfo.fullColumn)
#if(${column.comment})
#end
## 测试数据校验,VM模板好像不行## #if(${column.obj} || ${column.type} == "VARCHAR")${"\n"}#end#if($column.obj)#if($column.type == "VARCHAR")@NotBlank(message="[${column.comment}]不能为空")#else@NotNull(message="[${column.comment}]不能为空")#end#end#if($column.type == "VARCHAR")#if($column)${"\n"}#end@Size(max = ${column.length}, message = "[${column.comment}]长度不能超过${column.length}")#end
#if(${column.comment})
@ApiModelProperty("${column.comment}")
#end
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
#foreach($column in $tableInfo.fullColumn)
#getSetMethod($column)
#end
#foreach($column in $tableInfo.pkColumn)
#break
#end
}
实体类
## 实体类
##导入宏定义
$!{define.vm}
##保存文件(宏定义)
#save("/domain/entity", ".java")
##包路径(宏定义)
#setPackageSuffix("domain.entity")
##自动导入包(全局变量)
$!autoImport
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.io.Serializable;
import java.util.Date;
##表注释(宏定义)
#tableComment("表实体类")
@SuppressWarnings("serial")
@TableName("$!{tableInfo.obj.name}")
public class $!{tableInfo.name} extends Model<$!{tableInfo.name}> {
#foreach($column in $tableInfo.fullColumn)
#if(${column.comment})
#end
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
#foreach($column in $tableInfo.fullColumn)
#getSetMethod($column)
#end
#foreach($column in $tableInfo.pkColumn)
@Override
public Serializable pkVal() {
return this.$!column.name;
}
#break
#end
}
controller控制层
## controller控制层
##导入宏定义
$!{define.vm}
##设置表后缀(宏定义)
#setTableSuffix("Controller")
##保存文件(宏定义)
#save("/controller", "Controller.java")
##包路径(宏定义)
#setPackageSuffix("controller")
##定义服务名
#set($serviceName = $!tool.append($!tool.firstLowerCase($!tableInfo.name), "Service"))
##定义实体对象名
#set($entityName = $!tool.firstLowerCase($!tableInfo.name))
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.api.ApiController;
import com.baomidou.mybatisplus.extension.api.R;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import $!{tableInfo.savePackageName}.domain.entity.$!tableInfo.name;
import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
import org.springframework.web.bind.annotation.*;
import java.io.Serializable;
import java.util.List;
##表注释(宏定义)
#tableComment("表控制层")
@RestController
@Api(tags = "#if($tableInfo.comment)${tableInfo.comment}#end")
@RequestMapping("/$!tool.firstLowerCase($!tableInfo.name)")
public class $!{tableName}{
@Autowired
private $!{tableInfo.name}Service $!{serviceName};
@GetMapping
public R selectAll(Page<$!tableInfo.name> page, $!tableInfo.name $!entityName){
return success(this.$!{serviceName}.page(page,new QueryWrapper<>($!entityName)));
}
@GetMapping("{id}")
public R selectOne(@PathVariable Serializable id){
return success(this.$!{serviceName}.getById(id));
}
@PostMapping
public R insert(@RequestBody $!tableInfo.name $!entityName){
return success(this.$!{serviceName}.save($!entityName));
}
@PutMapping
public R update(@RequestBody $!tableInfo.name $!entityName){
return success(this.$!{serviceName}.updateById($!entityName));
}
@DeleteMapping
public R delete(@RequestParam("idList") List<Long> idList){
return success(this.$!{serviceName}.removeByIds(idList));
}
}
dao层,数据持久层
## dao层,数据持久层
##导入宏定义
$!{define.vm}
##设置表后缀(宏定义)
#setTableSuffix("Mapper")
##保存文件(宏定义)
#save("/mapper", "Mapper.java")
##包路径(宏定义)
#setPackageSuffix("mapper")
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import $!{tableInfo.savePackageName}.domain.entity.$!tableInfo.name;
import org.apache.ibatis.annotations.Mapper;
##表注释(宏定义)
#tableComment("表数据库访问层")
@Mapper
public interface $!{tableName} extends BaseMapper<$!tableInfo.name> {
int insertBatch(@Param("entities") List<Article> entities);
int insertOrUpdateBatch(@Param("entities") List<Article> entities);
}
dao层联络数据库,xml文件
##引入mybatis支持
## dao层联络数据库,xml文件
$!{mybatisSupport.vm}
##设置保存名称与保存位置
$!callback.setFileName($tool.append($!{tableInfo.name}, "Mapper.xml"))
$!callback.setSavePath($tool.append($modulePath, "/src/main/resources/mapper"))
##拿到主键
#if(!$tableInfo.pkColumn.isEmpty())
#set($pk = $tableInfo.pkColumn.get(0))
#end
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="$!{tableInfo.savePackageName}.mapper.$!{tableInfo.name}Mapper">
<resultMap type="$!{tableInfo.savePackageName}.domain.entity.$!{tableInfo.name}" id="$!{tableInfo.name}Map">
#foreach($column in $tableInfo.fullColumn)
<result property="$!column.name" column="$!column.obj.name" jdbcType="$!column.ext.jdbcType"/>
#end
</resultMap>
<!-- 批量插入 -->
<insert id="insertBatch" keyProperty="$!pk.name" useGeneratedKeys="true">
insert into $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name}(#foreach($column in $tableInfo.otherColumn)$!column.obj.name#if($velocityHasNext), #end#end)
values
<foreach collection="entities" item="entity" separator=",">
(#foreach($column in $tableInfo.otherColumn)#{entity.$!{column.name}}#if($velocityHasNext), #end#end)
</foreach>
</insert>
<!-- 批量插入或按主键更新 -->
<insert id="insertOrUpdateBatch" keyProperty="$!pk.name" useGeneratedKeys="true">
insert into $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name}(#foreach($column in $tableInfo.otherColumn)$!column.obj.name#if($velocityHasNext), #end#end)
values
<foreach collection="entities" item="entity" separator=",">
(#foreach($column in $tableInfo.otherColumn)#{entity.$!{column.name}}#if($velocityHasNext), #end#end)
</foreach>
on duplicate key update
#foreach($column in $tableInfo.otherColumn)$!column.obj.name = values($!column.obj.name) #if($velocityHasNext), #end#end
</insert>
</mapper>
业务逻辑层(接口)
## 业务逻辑层(接口)
##导入宏定义
$!{define.vm}
##设置表后缀(宏定义)
#setTableSuffix("Service")
##保存文件(宏定义)
#save("/service", "Service.java")
##包路径(宏定义)
#setPackageSuffix("service")
import com.baomidou.mybatisplus.extension.service.IService;
import $!{tableInfo.savePackageName}.domain.entity.$!{tableInfo.name};
##表注释(宏定义)
#tableComment("表服务接口")
public interface $!{tableName} extends IService<$!tableInfo.name> {
}
业务逻辑层(实现)
## 业务逻辑层(实现)
##导入宏定义
$!{define.vm}
##设置表后缀(宏定义)
#setTableSuffix("ServiceImpl")
##保存文件(宏定义)
#save("/service/impl", "ServiceImpl.java")
##包路径(宏定义)
#setPackageSuffix("service.impl")
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import $!{tableInfo.savePackageName}.mapper.$!{tableInfo.name}Mapper;
import $!{tableInfo.savePackageName}.domain.entity.$!{tableInfo.name};
import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
import org.springframework.stereotype.Service;
##表注释(宏定义)
#tableComment("表服务实现类")
@Service("$!tool.firstLowerCase($tableInfo.name)Service")
public class $!{tableName} extends ServiceImpl<$!{tableInfo.name}Mapper, $!{tableInfo.name}> implements $!{tableInfo.name}Service {
}