automatic
##引入宏定义
$!define
##使用宏定义设置回调(保存位置与文件后缀)
#save("/domain", "DO.java")
##使用宏定义设置包后缀
#setPackageSuffix("domain")
##使用全局变量实现默认包导入
$!autoImport
import lombok.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.*;
import org.hibernate.annotations.GenericGenerator;
import java.io.Serializable;
##使用宏定义实现类注释信息
#tableComment("实体类")
@NoArgsConstructor
@Data
@Entity
@Table(name = "$tableInfo.obj.getName()")
@EntityListeners(AuditingEntityListener.class)
public class $!{tableInfo.name}DO implements Serializable {
private static final long serialVersionUID = $!tool.serial();
#foreach($column in $tableInfo.fullColumn)
#if(${column.comment})/**
* ${column.comment}
*/
#end
#if(${column.name} == "id")
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#elseif(${column.obj.getName()} == "create_time")
@CreatedDate
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Column(name = "$column.obj.getName()")
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#elseif(${column.obj.getName()} == "update_time")
@LastModifiedDate
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Column(name = "$column.obj.getName()")
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#else
@Column(name = "$column.obj.getName()")
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
#end
}
##定义初始变量
#set($tableName = $tool.append($tableInfo.name, "Dao"))
##设置回调
$!callback.setFileName($tool.append($tableName, ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/mapper"))
##拿到主键
#if(!$tableInfo.pkColumn.isEmpty())
#set($pk = $tableInfo.pkColumn.get(0))
#end
#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}mapper;
import $!{tableInfo.savePackageName}.domain.$!{tableInfo.name}DO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;
/**
* $!{tableInfo.comment}($!{tableInfo.name})表数据库访问层
*
* @Author
* @Date $!time.currTime("yyyy-MM-dd")
*/
public interface $!{tableInfo.name}Dao extends JpaRepository<$!{tableInfo.name}DO,Integer>,
JpaSpecificationExecutor<$!{tableInfo.name}DO> {
}
注意事项:
1、关键字create是mysql系统的,jpa默认不添加引号,插入会报错,映射字段添加[]方括号代表mysql语句添加``;
2、时间需要指定合适;
@Column(name = "create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
// @Column(name = "create")
@Column(name="[create]")
private Integer create;
Controller
##定义初始变量
#set($tableName = $tool.append($tableInfo.name, "Controller"))
##设置回调
$!callback.setFileName($tool.append($tableName, ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/controller"))
##拿到主键
#if(!$tableInfo.pkColumn.isEmpty())
#set($pk = $tableInfo.pkColumn.get(0))
#end
#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}controller;
import $!{tableInfo.savePackageName}.domain.$!{tableInfo.name};
import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import net.cdftech.commons.utils.PageResult;
import net.cdftech.commons.utils.Pagination;
import net.cdftech.commons.utils.ResultUtil;
import net.cdftech.oam.coordination.utils.TokenUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.*;
import com.sun.istack.NotNull;
import javax.annotation.Resource;
import java.util.Map;
import static net.cdftech.commons.utils.ResultUtil.SUCCESS_STATE;
import static net.cdftech.commons.utils.ResultUtil.UNKNOWN_ERROR;
/**
* $!{tableInfo.comment}($!{tableInfo.name})控制层controller
*
* @Author
* @Date $!time.currTime("yyyy-MM-dd")
*/
@RestController
@ResponseBody
@CrossOrigin
@RequestMapping("/$!tool.firstLowerCase($tableInfo.name)")
@Api(value = "$!{tableInfo.comment}行为操作controller", tags = {"${tableInfo.comment}"})
public class $!tableName {
@Resource
private StringRedisTemplate stringRedisTemplate;
@Autowired
private $!{tableInfo.name}Service $!tool.firstLowerCase($tableInfo.name)Service;
@ApiOperation(value = "分页查询$!{tableInfo.comment}", tags = {""}, notes = "")
@RequestMapping(value = "/find$!tool.firstUpperCase($tableInfo.name)Page", method = RequestMethod.POST)
public ResultUtil find$!tool.firstUpperCase($tableInfo.name)Page(@RequestBody @ApiParam(name = "jsonStr", value = "\n" +
"{\n" +
"\n" +
" \"condition\": {\n" +
" \"searchKey\": \"关键字 选填\",\n" +
" \"keyWord\": \"输入搜索内容 选填\",\n" +
" },\n" +
" \"pagination\": {\n" +
" \"currentPage\": \"当前页 必填\",\n" +
" \"pageSize\": \"页大小 必填\"\n" +
" },\n" +
" \"sort\": {\n" +
" \"column\": \"排序字段 选填\",\n" +
" \"dir\": \"排序 选填 desc倒叙 asc正序\"\n" +
" }\n" +
"}\n" +
"\n" +
"{\n" +
"\n" +
" \"condition\": {\n" +
" \"searchKey\": \"\",\n" +
" \"keyWord\": \"\",\n" +
" },\n" +
" \"pagination\": {\n" +
" \"currentPage\": 1,\n" +
" \"pageSize\": 9\n" +
" },\n" +
" \"sort\": {\n" +
" \"column\": \"\",\n" +
" \"dir\": \"\"\n" +
" }\n" +
"}" +
"") String jsonStr,@RequestHeader(value = "Authorization") @ApiParam(name = "authorization", value = "token", example = "Barere test") String authorization) {
/**
*@Description: 分页查询$!{tableInfo.comment}
*@Author:
*@Date $!time.currTime("yyyy-MM-dd")
*@param: [jsonStr, authorization]
*@return net.cdftech.commons.utils.ResultUtil
*/
Map<String, Object> map = TokenUtils.getRedisInfoFromRequest(stringRedisTemplate, authorization);
ResultUtil resultUtil = new ResultUtil();
JSONObject dataObject = JSON.parseObject(jsonStr);
JSONObject condition = dataObject.getJSONObject("condition");
JSONObject pagination = dataObject.getJSONObject("pagination");
JSONObject sort = dataObject.getJSONObject("sort");
int currentPage = pagination.getInteger("currentPage");
int pageSize = pagination.getInteger("pageSize");
String column = sort.getString("column");
String dir = sort.getString("dir");
if (column == null||column.equals("")) {
column = "gmt_create";
}
if (dir == null||dir.equals("")) {
dir = "desc";
}
String searchKey = condition.getString("searchKey");
String keyWord = condition.getString("keyWord");
try {
resultUtil.setCode(SUCCESS_STATE);
PageInfo<$!{tableInfo.name}> $!{tool.firstLowerCase($tableInfo.name)}PageInfo = $!{tool.firstLowerCase($tableInfo.name)}Service.query$!{tableInfo.name}PageData(currentPage, pageSize, column, dir, searchKey, keyWord);
Pagination pagination1 = new Pagination();
pagination1.setCurrentPage(currentPage);
pagination1.setPageSize(pageSize);
pagination1.setTotalNum((int) $!{tool.firstLowerCase($tableInfo.name)}PageInfo.getTotal());
pagination1.setTotalPage($!{tool.firstLowerCase($tableInfo.name)}PageInfo.getPages());
PageResult pageResult = new PageResult();
pageResult.setPagination(pagination1);
pageResult.setData($!{tool.firstLowerCase($tableInfo.name)}PageInfo.getList());
resultUtil.setData(pageResult);
} catch (Exception e) {
resultUtil.setCode(UNKNOWN_ERROR);
e.printStackTrace();
}finally {
return resultUtil;
}
}
@ApiOperation(value = "查询$!{tableInfo.comment}详情", tags = {""}, notes = "")
@ApiImplicitParams({
@ApiImplicitParam(name = "$!pk.name", value = "主键", dataType = "string", paramType = "query",required = true)})
@RequestMapping(value = "/find$!tool.firstLowerCase($tableInfo.name)ById", method = RequestMethod.POST)
public ResultUtil find$!tool.firstLowerCase($tableInfo.name)ById(@NotNull String id) {
/**
*@Description: 查询$!{tableInfo.comment}详情
*@Author:
*@Date $!time.currTime("yyyy-MM-dd")
*@param: [id]
*@return net.cdftech.commons.utils.ResultUtil
*/
ResultUtil resultUtil = new ResultUtil();
try {
resultUtil.setCode(SUCCESS_STATE);
resultUtil.setData($!{tool.firstLowerCase($tableInfo.name)}Service.query$!{tableInfo.name}ById(id));
} catch (Exception e) {
resultUtil.setCode(UNKNOWN_ERROR);
e.printStackTrace();
}finally {
return resultUtil;
}
}
@ApiOperation(value = "$!{tableInfo.comment}($!{tableInfo.name})保存",tags = {""}, notes = "")
@RequestMapping(value = "/save$!{tableInfo.name}", method = RequestMethod.POST)
public ResultUtil save$!{tableInfo.name}(@RequestBody @ApiParam(name = "jsonStr", value = "{\n" +
#foreach($column in $tableInfo.fullColumn)
#if($!{tool.getClsNameByFullName($column.shortType)} == "String")
"\"$!{column.name}\":\"${column.comment}\",\n"+
#else
"\"$!{column.name}\":\"${column.comment} ${column.shortType}\",\n"+
#end
#end
"}", required = true) String jsonStr) {
/**
*@Description: $!{tableInfo.comment}($!{tableInfo.name})保存
*@Author:
*@Date $!time.currTime("yyyy-MM-dd")
*@param: [jsonStr]
*@return net.cdftech.commons.utils.ResultUtil
*/
ResultUtil resultUtil = new ResultUtil();
try {
resultUtil.setCode(SUCCESS_STATE);
$!{tool.firstLowerCase($tableInfo.name)}Service.save$!{tableInfo.name}(jsonStr);
} catch (Exception e) {
resultUtil.setCode(UNKNOWN_ERROR);
e.printStackTrace();
}finally {
return resultUtil;
}
}
@ApiOperation(value = "删除资源错误数据", notes = "")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", dataType = "string", paramType = "query",required = true)})
@RequestMapping(value = "/del$!{tool.firstLowerCase($tableInfo.name)}ById", method = RequestMethod.POST)
public ResultUtil del$!{tool.firstLowerCase($tableInfo.name)}ById(String id) {
ResultUtil resultUtil = new ResultUtil();
try {
resultUtil.setCode(SUCCESS_STATE);
$!{tool.firstLowerCase($tableInfo.name)}Service.delete$!{tableInfo.name}ById(id);
} catch (Exception e) {
resultUtil.setCode(UNKNOWN_ERROR);
e.printStackTrace();
}finally {
return resultUtil;
}
}
@ApiOperation(value = "增加资源测试数据", notes = "")
@ApiImplicitParams({
@ApiImplicitParam(name = "num", value = "数量", dataType = "String", paramType = "query",required = true)})
@RequestMapping(value = "/genData$!{tool.firstUpperCase($tableInfo.name)}", method = RequestMethod.POST)
public ResultUtil genData$!{tool.firstUpperCase($tableInfo.name)}(int num) {
ResultUtil resultUtil = new ResultUtil();
try {
resultUtil.setCode(SUCCESS_STATE);
$!{tool.firstLowerCase($tableInfo.name)}Service.genData$!{tool.firstUpperCase($tableInfo.name)}(num);
} catch (Exception e) {
resultUtil.setCode(UNKNOWN_ERROR);
e.printStackTrace();
}finally {
return resultUtil;
}
}
}
Domain
##引入宏定义
$!define
##使用宏定义设置回调(保存位置与文件后缀)
#save("/domain", ".java")
##使用宏定义设置包后缀
#setPackageSuffix("domain")
##使用全局变量实现默认包导入
$!autoImport
import lombok.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.*;
import org.hibernate.annotations.GenericGenerator;
import java.io.Serializable;
##使用宏定义实现类注释信息
#tableComment("实体类")
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@Builder
@ToString
@DynamicUpdate
@DynamicInsert
@Entity
@Table(name = "$tableInfo.obj.getName()")
@EntityListeners(AuditingEntityListener.class)
public class $!{tableInfo.name} implements Serializable {
private static final long serialVersionUID = $!tool.serial();
#foreach($column in $tableInfo.fullColumn)
#if(${column.comment})/**
* ${column.comment}
*/
#end
#if(${column.name} == "id")
@Id
@GenericGenerator(name = "system-uuid",strategy = "uuid")
@GeneratedValue(generator = "system-uuid")
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#elseif(${column.obj.getName()} == "gmt_create")
@CreatedDate
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Column(name = "$column.obj.getName()")
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#elseif(${column.obj.getName()} == "gmt_modified")
@LastModifiedDate
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Column(name = "$column.obj.getName()")
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#else
@Column(name = "$column.obj.getName()")
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
#end
/**
* $!{tableInfo.name} just for Test data
**/
public $!{tableInfo.name}(int i){
#foreach($column in $tableInfo.fullColumn)
#if($!{tool.getClsNameByFullName($column.type)} != "Date"&&(${column.obj.getName()} != "gmt_create"&&${column.obj.getName()} != "gmt_modified"))
#if($!{tool.getClsNameByFullName($column.type)} == "int")
$!{column.name} = i;
#else
$!{column.name} = "${column.comment}"+i;
#end
#end
#end
}
}
Repository
##定义初始变量
#set($tableName = $tool.append($tableInfo.name, "Repository"))
##设置回调
$!callback.setFileName($tool.append($tableName, ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/repository"))
##拿到主键
#if(!$tableInfo.pkColumn.isEmpty())
#set($pk = $tableInfo.pkColumn.get(0))
#end
#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}repository;
import $!{tableInfo.savePackageName}.domain.$!{tableInfo.name};
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;
/**
* $!{tableInfo.comment}($!{tableInfo.name})表数据库访问层
*
* @Author
* @Date $!time.currTime("yyyy-MM-dd")
*/
@Repository
public interface $!{tableInfo.name}Repository extends JpaRepository<$!{tableInfo.name},String>,
JpaSpecificationExecutor<$!{tableInfo.name}> {}
}
Service
##定义初始变量
#set($tableName = $tool.append($tableInfo.name, "Service"))
##设置回调
$!callback.setFileName($tool.append($tableName, ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/service"))
##拿到主键
#if(!$tableInfo.pkColumn.isEmpty())
#set($pk = $tableInfo.pkColumn.get(0))
#end
#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service;
import com.github.pagehelper.PageInfo;
import $!{tableInfo.savePackageName}.domain.$!{tableInfo.name};
import java.util.List;
/**
* $!{tableInfo.comment}($!{tableInfo.name})表服务接口
*
* @Author
* @Date $!time.currTime("yyyy-MM-dd")
*/
public interface $!{tableName} {
/**
* 分页查询$!{tableName}数据
*
* @param currentPage 当前页
* @param pageSize 页大小
* @param sortColumn 排序字段
* @param dir 默认倒序
* @param searchKey 搜索关键字
* @param searchValue 搜索内容 %like%
* @return Page
*/
PageInfo<$!{tableInfo.name}> query$!{tableInfo.name}PageData(int currentPage,int pageSize,String sortColumn,String dir,String searchKey,String searchValue);
/**
* 通过ID查询$!{tableName}单条数据
*
* @param $!pk.name 主键
* @return 实例对象
*/
$!{tableInfo.name} query$!{tableInfo.name}ById($!pk.shortType $!pk.name);
/**
* 保存$!{tableName}数据
*
* @param jsonStr
* @return 实例对象
*/
$!{tableInfo.name} save$!{tableInfo.name}(String jsonStr);
/**
* 通过主键删除$!{tableName}数据
*
* @param $!pk.name 主键
*/
void delete$!{tableInfo.name}ById($!pk.shortType $!pk.name);
/**
* 增加$!{tableName}数据
*
* @param num 数量
*/
void genData$!{tool.firstUpperCase($tableInfo.name)}(int num);
}
Impl
##定义初始变量
#set($tableName = $tool.append($tableInfo.name, "ServiceImpl"))
##设置回调
$!callback.setFileName($tool.append($tableName, ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/service/impl"))
##拿到主键
#if(!$tableInfo.pkColumn.isEmpty())
#set($pk = $tableInfo.pkColumn.get(0))
#end
#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service.impl;
import $!{tableInfo.savePackageName}.domain.$!{tableInfo.name};
import $!{tableInfo.savePackageName}.mapper.$!{tableInfo.name}Dao;
import $!{tableInfo.savePackageName}.repository.$!{tableInfo.name}Repository;
import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import javax.annotation.Resource;
import com.alibaba.fastjson.JSONObject;
import java.util.List;
/**
* $!{tableInfo.comment}($!{tableInfo.name})表服务实现类
*
* @Author
* @Date $!time.currTime("yyyy-MM-dd")
*/
@Transactional
@Service("$!tool.firstLowerCase($!{tableInfo.name})Service")
public class $!{tableName} implements $!{tableInfo.name}Service {
@Resource
private $!{tableInfo.name}Dao $!tool.firstLowerCase($!{tableInfo.name})Dao;
@Autowired
private $!{tableInfo.name}Repository $!tool.firstLowerCase($!{tableInfo.name})Repository;
/**
* 分页查询$!{tableName}数据
* @Author
* @Date $!time.currTime()
* @param currentPage 当前页
* @param pageSize 页大小
* @param sortColumn 排序字段
* @param dir 默认倒序
* @param searchKey 搜索关键字
* @param searchValue 搜索内容 %like%
* @return PageInfo
*/
@Override
public PageInfo<$!{tableInfo.name}> query$!{tableInfo.name}PageData(int currentPage,int pageSize,String sortColumn,String dir,String searchKey,String searchValue){
//将参数封装到Pagehelper,注意:当前设置只对下一个SQL语句生效,并且在mapper.xml中的SQL语句不要写分号.
PageHelper.startPage(currentPage, pageSize);
List<$!{tableInfo.name}> jgJgdxQyjbxxesMap = $!{tool.firstLowerCase($!{tableInfo.name})}Dao.query$!{tableInfo.name}PageData(sortColumn,dir,searchKey,searchValue);
PageInfo<$!{tableInfo.name}> pageInfo = new PageInfo<>(jgJgdxQyjbxxesMap);
return pageInfo;
}
/**
* 通过ID查询$!{tableName}单条数据
* @Author
* @Date $!time.currTime("yyyy-MM-dd")
* @param $!pk.name 主键
* @return 实例对象
*/
@Override
public $!{tableInfo.name} query$!{tableInfo.name}ById($!pk.shortType $!pk.name){
return $!{tool.firstLowerCase($!{tableInfo.name})}Repository.findById($!pk.name).get();
}
/**
* 保存$!{tableName}数据
* @Author
* @Date $!time.currTime("yyyy-MM-dd")
* @param jsonStr
* @return 实例对象
*/
@Override
public $!{tableInfo.name} save$!{tableInfo.name}(String jsonStr){
//List<$!{tableInfo.name}> $!{tool.firstLowerCase($!{tableInfo.name})}List = JSONArray.parseArray(jsonStr, $!{tableInfo.name}.class);
$!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}) = JSONObject.parseObject(jsonStr, $!{tableInfo.name}.class);
$!{tool.firstLowerCase($!{tableInfo.name})}Repository.save($!tool.firstLowerCase($!{tableInfo.name}));
return $!tool.firstLowerCase($!{tableInfo.name});
}
/**
* 通过主键删除$!{tableName}数据
* @Author
* @Date $!time.currTime("yyyy-MM-dd")
* @param $!pk.name 主键
*@return void
*/
@Override
public void delete$!{tableInfo.name}ById($!pk.shortType $!pk.name){
$!{tool.firstLowerCase($!{tableInfo.name})}Repository.deleteById("$!pk.name");
}
/**
* 增加$!{tableName}数据
* @Author
* @Date $!time.currTime("yyyy-MM-dd")
* @param num 数量
*@return void
*/
@Override
public void genData$!{tool.firstUpperCase($tableInfo.name)}(int num){
for (int i = 0; i <num ; i++) {
$!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}) = new $!{tableInfo.name}(i);
$!{tool.firstLowerCase($!{tableInfo.name})}Repository.save($!tool.firstLowerCase($!{tableInfo.name}));
}
}
}
Dao
##定义初始变量
#set($tableName = $tool.append($tableInfo.name, "Dao"))
##设置回调
$!callback.setFileName($tool.append($tableName, ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/mapper"))
##拿到主键
#if(!$tableInfo.pkColumn.isEmpty())
#set($pk = $tableInfo.pkColumn.get(0))
#end
#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}mapper;
import $!{tableInfo.savePackageName}.domain.$!{tableInfo.name};
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* $!{tableInfo.comment}($!{tableInfo.name})表数据库访问层
*
* @Author
* @Date $!time.currTime("yyyy-MM-dd")
*/
@Mapper
public interface $!{tableName} {
/**
* 分页查询$!{tableName}数据
*
* @param sortColumn 排序字段
* @param dir 默认倒序
* @param searchKey 搜索关键字
* @param searchValue 搜索内容 %like%
* @return Page
*/
List<$!{tableInfo.name}> query$!{tableInfo.name}PageData(@Param("sortColumn") String sortColumn,@Param("dir") String dir,@Param("searchKey") String searchKey,@Param("searchValue") String searchValue);
}
Mapper
##引入mybatis支持
$!mybatisSupport
##设置保存名称与保存位置
$!callback.setFileName($tool.append($!{tableInfo.name}, "Dao.xml"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/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}Dao">
<resultMap type="$!{tableInfo.savePackageName}.domain.$!{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>
<!--分页查询-->
<select id="query$!{tableInfo.name}PageData" resultMap="$!{tableInfo.name}Map">
select
#allSqlColumn()
from $!{tableInfo.obj.parent.name}.$!tableInfo.obj.name
WHERE
1=1
<if test="searchValue!=null and searchValue!=''">
<choose>
<when test="searchKey == 'searchKey'">
and searchKey like concat('%',#{searchValue},'%')
</when>
<otherwise>
and searchKey like concat('%',#{searchValue},'%')
</otherwise>
</choose>
</if>
order by ${sortColumn} ${dir}
</select>
</mapper>