文章目录
- controller:
- entity:
- mapper.java:
- mapper.xml:
- service:
- serviceImpl:
数据持久层使用MybatisPlus
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
@RequestMapping("/$!tool.firstLowerCase($!tableInfo.name)")
public class $!{tableName}{/*** 服务对象*/@Autowiredprivate $!{tableInfo.name}Service $!{serviceName};/*** 分页查询所有数据** @param page 分页对象* @param $!entityName 查询实体* @return 所有数据*/@GetMappingpublic R selectAll(Page<$!tableInfo.name> page, $!tableInfo.name $!entityName) {return success(this.$!{serviceName}.page(page, new QueryWrapper<>($!entityName)));}/*** 通过主键查询单条数据** @param id 主键* @return 单条数据*/@GetMapping("{id}")public R selectOne(@PathVariable Serializable id) {return success(this.$!{serviceName}.getById(id));}/*** 新增数据** @param $!entityName 实体对象* @return 新增结果*/@PostMappingpublic R insert(@RequestBody $!tableInfo.name $!entityName) {return success(this.$!{serviceName}.save($!entityName));}/*** 修改数据** @param $!entityName 实体对象* @return 修改结果*/@PutMappingpublic R update(@RequestBody $!tableInfo.name $!entityName) {return success(this.$!{serviceName}.updateById($!entityName));}/*** 删除数据** @param idList 主键结合* @return 删除结果*/@DeleteMappingpublic R delete(@RequestParam("idList") List<Long> idList) {return success(this.$!{serviceName}.removeByIds(idList));}
}
entity:
## 实体类
##导入宏定义
$!{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})//${column.comment}#endprivate $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end#foreach($column in $tableInfo.fullColumn)
#getSetMethod($column)
#end#foreach($column in $tableInfo.pkColumn)/*** 获取主键值** @return 主键值*/@Overridepublic Serializable pkVal() {return this.$!column.name;}#break
#end
}
mapper.java:
## 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> {/*** 批量新增数据(MyBatis原生foreach方法)** @param entities List<Article> 实例对象列表* @return 影响行数*/int insertBatch(@Param("entities") List<Article> entities);/*** 批量新增或按主键更新数据(MyBatis原生foreach方法)** @param entities List<Article> 实例对象列表* @return 影响行数* @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参*/int insertOrUpdateBatch(@Param("entities") List<Article> entities);}
mapper.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>
service:
## 业务逻辑层(接口)
##导入宏定义
$!{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> {}
serviceImpl:
## 业务逻辑层(实现)
##导入宏定义
$!{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 {}