参考了别人的项目,对于有用的技术做一个记录
https://github.com/macrozheng/mall
project Structure
pom.xml
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
generator.properties
jdbc.driverClass=com.mysql.cj.jdbc.Driver
jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
jdbc.userId=root
jdbc.password=XXXXXX
SQL
以一个表为例,写了COMMENT在生成的时候代码上也会出现对应的注解
USE mall;
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for cms_member_report
-- ----------------------------
DROP TABLE IF EXISTS `cms_member_report`;
CREATE TABLE `cms_member_report` (
`id` bigint(20) DEFAULT NULL,
`report_type` int(1) DEFAULT NULL COMMENT '举报类型:0->商品评价;1->话题内容;2->用户评论',
`report_member_name` varchar(100) DEFAULT NULL COMMENT '举报人',
`create_time` datetime DEFAULT NULL,
`report_object` varchar(100) DEFAULT NULL,
`report_status` int(1) DEFAULT NULL COMMENT '举报状态:0->未处理;1->已处理',
`handle_status` int(1) DEFAULT NULL COMMENT '处理结果:0->无效;1->有效;2->恶意',
`note` varchar(200) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户举报表';
generator.config
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<properties resource="generator.properties"/>
<context id="MySqlContext" targetRuntime="MyBatis3" defaultModelType="flat">
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<property name="javaFileEncoding" value="UTF-8"/>
<!-- 为模型生成序列化方法-->
<plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>
<!-- 为生成的Java模型创建一个toString方法 -->
<plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>
<!--生成mapper.xml时覆盖原文件-->
<plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" />
<commentGenerator type="com.macro.mall.CommentGenerator">
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
<property name="suppressDate" value="true"/>
<property name="addRemarkComments" value="true"/>
</commentGenerator>
<jdbcConnection driverClass="${jdbc.driverClass}"
connectionURL="${jdbc.connectionURL}"
userId="${jdbc.userId}"
password="${jdbc.password}">
<!--解决mysql驱动升级到8.0后不生成指定数据库代码的问题-->
<property name="nullCatalogMeansCurrent" value="true" />
</jdbcConnection>
<javaModelGenerator targetPackage="com.macro.mall.model" targetProject="mall-mbg\src\main\java"/>
<sqlMapGenerator targetPackage="com.macro.mall.mapper" targetProject="mall-mbg\src\main\resources"/>
<javaClientGenerator type="XMLMAPPER" targetPackage="com.macro.mall.mapper"
targetProject="mall-mbg\src\main\java"/>
<!--生成全部表tableName设为%-->
<table tableName="%">
<generatedKey column="id" sqlStatement="MySql" identity="true"/>
</table>
</context>
</generatorConfiguration>
generator.java
package com.macro.mall;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
/**
* 用于生产MBG的代码
* Created by macro on 2018/4/26.
*/
public class Generator {
public static void main(String[] args) throws Exception {
//MBG 执行过程中的警告信息
List<String> warnings = new ArrayList<String>();
//当生成的代码重复时,覆盖原代码
boolean overwrite = true;
//读取我们的 MBG 配置文件
InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(is);
is.close();
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
//创建 MBG
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
//执行生成代码
myBatisGenerator.generate(null);
//输出警告信息
for (String warning : warnings) {
System.out.println(warning);
}
}
}
重写注释生成器
package com.macro.mall;
import org.mybatis.generator.api.IntrospectedColumn;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.dom.java.CompilationUnit;
import org.mybatis.generator.api.dom.java.Field;
import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType;
import org.mybatis.generator.internal.DefaultCommentGenerator;
import org.mybatis.generator.internal.util.StringUtility;
import java.util.Properties;
/**
* 自定义注释生成器
* Created by macro on 2018/4/26.
*/
public class CommentGenerator extends DefaultCommentGenerator {
private boolean addRemarkComments = false;
private static final String EXAMPLE_SUFFIX="Example";
private static final String MAPPER_SUFFIX="Mapper";
private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty";
/**
* 设置用户配置的参数
*/
@Override
public void addConfigurationProperties(Properties properties) {
super.addConfigurationProperties(properties);
this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments"));
}
/**
* 给字段添加注释
*/
@Override
public void addFieldComment(Field field, IntrospectedTable introspectedTable,
IntrospectedColumn introspectedColumn) {
String remarks = introspectedColumn.getRemarks();
//根据参数和备注信息判断是否添加备注信息
if(addRemarkComments&&StringUtility.stringHasValue(remarks)){
// addFieldJavaDoc(field, remarks);
//数据库中特殊字符需要转义
if(remarks.contains("\"")){
remarks = remarks.replace("\"","'");
}
//给model的字段添加swagger注解
field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")");
}
}
/**
* 给model的字段添加注释
*/
private void addFieldJavaDoc(Field field, String remarks) {
//文档注释开始
field.addJavaDocLine("/**");
//获取数据库字段的备注信息
String[] remarkLines = remarks.split(System.getProperty("line.separator"));
for(String remarkLine:remarkLines){
field.addJavaDocLine(" * "+remarkLine);
}
addJavadocTag(field, false);
field.addJavaDocLine(" */");
}
@Override
public void addJavaFileComment(CompilationUnit compilationUnit) {
super.addJavaFileComment(compilationUnit);
//只在model中添加swagger注解类的导入
if(!compilationUnit.getType().getFullyQualifiedName().contains(MAPPER_SUFFIX)&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){
compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME));
}
}
}
运行Generator.java得到下列文件
mapper
package com.macro.mall.mapper;
import com.macro.mall.model.CmsMemberReport;
import com.macro.mall.model.CmsMemberReportExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface CmsMemberReportMapper {
long countByExample(CmsMemberReportExample example);
int deleteByExample(CmsMemberReportExample example);
int insert(CmsMemberReport record);
int insertSelective(CmsMemberReport record);
List<CmsMemberReport> selectByExample(CmsMemberReportExample example);
int updateByExampleSelective(@Param("record") CmsMemberReport record, @Param("example") CmsMemberReportExample example);
int updateByExample(@Param("record") CmsMemberReport record, @Param("example") CmsMemberReportExample example);
}
pojo
package com.macro.mall.model;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
public class CmsMemberReport implements Serializable {
private Long id;
@ApiModelProperty(value = "举报类型:0->商品评价;1->话题内容;2->用户评论")
private Integer reportType;
@ApiModelProperty(value = "举报人")
private String reportMemberName;
private Date createTime;
private String reportObject;
@ApiModelProperty(value = "举报状态:0->未处理;1->已处理")
private Integer reportStatus;
@ApiModelProperty(value = "处理结果:0->无效;1->有效;2->恶意")
private Integer handleStatus;
private String note;
private static final long serialVersionUID = 1L;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Integer getReportType() {
return reportType;
}
public void setReportType(Integer reportType) {
this.reportType = reportType;
}
public String getReportMemberName() {
return reportMemberName;
}
public void setReportMemberName(String reportMemberName) {
this.reportMemberName = reportMemberName;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getReportObject() {
return reportObject;
}
public void setReportObject(String reportObject) {
this.reportObject = reportObject;
}
public Integer getReportStatus() {
return reportStatus;
}
public void setReportStatus(Integer reportStatus) {
this.reportStatus = reportStatus;
}
public Integer getHandleStatus() {
return handleStatus;
}
public void setHandleStatus(Integer handleStatus) {
this.handleStatus = handleStatus;
}
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", reportType=").append(reportType);
sb.append(", reportMemberName=").append(reportMemberName);
sb.append(", createTime=").append(createTime);
sb.append(", reportObject=").append(reportObject);
sb.append(", reportStatus=").append(reportStatus);
sb.append(", handleStatus=").append(handleStatus);
sb.append(", note=").append(note);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
}
}
criteria
package com.macro.mall.model;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class CmsMemberReportExample {
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
public CmsMemberReportExample() {
oredCriteria = new ArrayList<>();
}
public void setOrderByClause(String orderByClause) {
this.orderByClause = orderByClause;
}
public String getOrderByClause() {
return orderByClause;
}
public void setDistinct(boolean distinct) {
this.distinct = distinct;
}
public boolean isDistinct() {
return distinct;
}
public List<Criteria> getOredCriteria() {
return oredCriteria;
}
public void or(Criteria criteria) {
oredCriteria.add(criteria);
}
public Criteria or() {
Criteria criteria = createCriteriaInternal();
oredCriteria.add(criteria);
return criteria;
}
public Criteria createCriteria() {
Criteria criteria = createCriteriaInternal();
if (oredCriteria.size() == 0) {
oredCriteria.add(criteria);
}
return criteria;
}
protected Criteria createCriteriaInternal() {
Criteria criteria = new Criteria();
return criteria;
}
public void clear() {
oredCriteria.clear();
orderByClause = null;
distinct = false;
}
protected abstract static class GeneratedCriteria {
protected List<Criterion> criteria;
protected GeneratedCriteria() {
super();
criteria = new ArrayList<>();
}
public boolean isValid() {
return criteria.size() > 0;
}
public List<Criterion> getAllCriteria() {
return criteria;
}
public List<Criterion> getCriteria() {
return criteria;
}
protected void addCriterion(String condition) {
if (condition == null) {
throw new RuntimeException("Value for condition cannot be null");
}
criteria.add(new Criterion(condition));
}
protected void addCriterion(String condition, Object value, String property) {
if (value == null) {
throw new RuntimeException("Value for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value));
}
protected void addCriterion(String condition, Object value1, Object value2, String property) {
if (value1 == null || value2 == null) {
throw new RuntimeException("Between values for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value1, value2));
}
public Criteria andIdIsNull() {
addCriterion("id is null");
return (Criteria) this;
}
public Criteria andIdIsNotNull() {
addCriterion("id is not null");
return (Criteria) this;
}
public Criteria andIdEqualTo(Long value) {
addCriterion("id =", value, "id");
return (Criteria) this;
}
public Criteria andIdNotEqualTo(Long value) {
addCriterion("id <>", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThan(Long value) {
addCriterion("id >", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThanOrEqualTo(Long value) {
addCriterion("id >=", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThan(Long value) {
addCriterion("id <", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThanOrEqualTo(Long value) {
addCriterion("id <=", value, "id");
return (Criteria) this;
}
public Criteria andIdIn(List<Long> values) {
addCriterion("id in", values, "id");
return (Criteria) this;
}
public Criteria andIdNotIn(List<Long> values) {
addCriterion("id not in", values, "id");
return (Criteria) this;
}
public Criteria andIdBetween(Long value1, Long value2) {
addCriterion("id between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andIdNotBetween(Long value1, Long value2) {
addCriterion("id not between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andReportTypeIsNull() {
addCriterion("report_type is null");
return (Criteria) this;
}
public Criteria andReportTypeIsNotNull() {
addCriterion("report_type is not null");
return (Criteria) this;
}
public Criteria andReportTypeEqualTo(Integer value) {
addCriterion("report_type =", value, "reportType");
return (Criteria) this;
}
public Criteria andReportTypeNotEqualTo(Integer value) {
addCriterion("report_type <>", value, "reportType");
return (Criteria) this;
}
public Criteria andReportTypeGreaterThan(Integer value) {
addCriterion("report_type >", value, "reportType");
return (Criteria) this;
}
public Criteria andReportTypeGreaterThanOrEqualTo(Integer value) {
addCriterion("report_type >=", value, "reportType");
return (Criteria) this;
}
public Criteria andReportTypeLessThan(Integer value) {
addCriterion("report_type <", value, "reportType");
return (Criteria) this;
}
public Criteria andReportTypeLessThanOrEqualTo(Integer value) {
addCriterion("report_type <=", value, "reportType");
return (Criteria) this;
}
public Criteria andReportTypeIn(List<Integer> values) {
addCriterion("report_type in", values, "reportType");
return (Criteria) this;
}
public Criteria andReportTypeNotIn(List<Integer> values) {
addCriterion("report_type not in", values, "reportType");
return (Criteria) this;
}
public Criteria andReportTypeBetween(Integer value1, Integer value2) {
addCriterion("report_type between", value1, value2, "reportType");
return (Criteria) this;
}
public Criteria andReportTypeNotBetween(Integer value1, Integer value2) {
addCriterion("report_type not between", value1, value2, "reportType");
return (Criteria) this;
}
public Criteria andReportMemberNameIsNull() {
addCriterion("report_member_name is null");
return (Criteria) this;
}
public Criteria andReportMemberNameIsNotNull() {
addCriterion("report_member_name is not null");
return (Criteria) this;
}
public Criteria andReportMemberNameEqualTo(String value) {
addCriterion("report_member_name =", value, "reportMemberName");
return (Criteria) this;
}
public Criteria andReportMemberNameNotEqualTo(String value) {
addCriterion("report_member_name <>", value, "reportMemberName");
return (Criteria) this;
}
public Criteria andReportMemberNameGreaterThan(String value) {
addCriterion("report_member_name >", value, "reportMemberName");
return (Criteria) this;
}
public Criteria andReportMemberNameGreaterThanOrEqualTo(String value) {
addCriterion("report_member_name >=", value, "reportMemberName");
return (Criteria) this;
}
public Criteria andReportMemberNameLessThan(String value) {
addCriterion("report_member_name <", value, "reportMemberName");
return (Criteria) this;
}
public Criteria andReportMemberNameLessThanOrEqualTo(String value) {
addCriterion("report_member_name <=", value, "reportMemberName");
return (Criteria) this;
}
public Criteria andReportMemberNameLike(String value) {
addCriterion("report_member_name like", value, "reportMemberName");
return (Criteria) this;
}
public Criteria andReportMemberNameNotLike(String value) {
addCriterion("report_member_name not like", value, "reportMemberName");
return (Criteria) this;
}
public Criteria andReportMemberNameIn(List<String> values) {
addCriterion("report_member_name in", values, "reportMemberName");
return (Criteria) this;
}
public Criteria andReportMemberNameNotIn(List<String> values) {
addCriterion("report_member_name not in", values, "reportMemberName");
return (Criteria) this;
}
public Criteria andReportMemberNameBetween(String value1, String value2) {
addCriterion("report_member_name between", value1, value2, "reportMemberName");
return (Criteria) this;
}
public Criteria andReportMemberNameNotBetween(String value1, String value2) {
addCriterion("report_member_name not between", value1, value2, "reportMemberName");
return (Criteria) this;
}
public Criteria andCreateTimeIsNull() {
addCriterion("create_time is null");
return (Criteria) this;
}
public Criteria andCreateTimeIsNotNull() {
addCriterion("create_time is not null");
return (Criteria) this;
}
public Criteria andCreateTimeEqualTo(Date value) {
addCriterion("create_time =", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotEqualTo(Date value) {
addCriterion("create_time <>", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeGreaterThan(Date value) {
addCriterion("create_time >", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
addCriterion("create_time >=", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeLessThan(Date value) {
addCriterion("create_time <", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
addCriterion("create_time <=", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeIn(List<Date> values) {
addCriterion("create_time in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotIn(List<Date> values) {
addCriterion("create_time not in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeBetween(Date value1, Date value2) {
addCriterion("create_time between", value1, value2, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
addCriterion("create_time not between", value1, value2, "createTime");
return (Criteria) this;
}
public Criteria andReportObjectIsNull() {
addCriterion("report_object is null");
return (Criteria) this;
}
public Criteria andReportObjectIsNotNull() {
addCriterion("report_object is not null");
return (Criteria) this;
}
public Criteria andReportObjectEqualTo(String value) {
addCriterion("report_object =", value, "reportObject");
return (Criteria) this;
}
public Criteria andReportObjectNotEqualTo(String value) {
addCriterion("report_object <>", value, "reportObject");
return (Criteria) this;
}
public Criteria andReportObjectGreaterThan(String value) {
addCriterion("report_object >", value, "reportObject");
return (Criteria) this;
}
public Criteria andReportObjectGreaterThanOrEqualTo(String value) {
addCriterion("report_object >=", value, "reportObject");
return (Criteria) this;
}
public Criteria andReportObjectLessThan(String value) {
addCriterion("report_object <", value, "reportObject");
return (Criteria) this;
}
public Criteria andReportObjectLessThanOrEqualTo(String value) {
addCriterion("report_object <=", value, "reportObject");
return (Criteria) this;
}
public Criteria andReportObjectLike(String value) {
addCriterion("report_object like", value, "reportObject");
return (Criteria) this;
}
public Criteria andReportObjectNotLike(String value) {
addCriterion("report_object not like", value, "reportObject");
return (Criteria) this;
}
public Criteria andReportObjectIn(List<String> values) {
addCriterion("report_object in", values, "reportObject");
return (Criteria) this;
}
public Criteria andReportObjectNotIn(List<String> values) {
addCriterion("report_object not in", values, "reportObject");
return (Criteria) this;
}
public Criteria andReportObjectBetween(String value1, String value2) {
addCriterion("report_object between", value1, value2, "reportObject");
return (Criteria) this;
}
public Criteria andReportObjectNotBetween(String value1, String value2) {
addCriterion("report_object not between", value1, value2, "reportObject");
return (Criteria) this;
}
public Criteria andReportStatusIsNull() {
addCriterion("report_status is null");
return (Criteria) this;
}
public Criteria andReportStatusIsNotNull() {
addCriterion("report_status is not null");
return (Criteria) this;
}
public Criteria andReportStatusEqualTo(Integer value) {
addCriterion("report_status =", value, "reportStatus");
return (Criteria) this;
}
public Criteria andReportStatusNotEqualTo(Integer value) {
addCriterion("report_status <>", value, "reportStatus");
return (Criteria) this;
}
public Criteria andReportStatusGreaterThan(Integer value) {
addCriterion("report_status >", value, "reportStatus");
return (Criteria) this;
}
public Criteria andReportStatusGreaterThanOrEqualTo(Integer value) {
addCriterion("report_status >=", value, "reportStatus");
return (Criteria) this;
}
public Criteria andReportStatusLessThan(Integer value) {
addCriterion("report_status <", value, "reportStatus");
return (Criteria) this;
}
public Criteria andReportStatusLessThanOrEqualTo(Integer value) {
addCriterion("report_status <=", value, "reportStatus");
return (Criteria) this;
}
public Criteria andReportStatusIn(List<Integer> values) {
addCriterion("report_status in", values, "reportStatus");
return (Criteria) this;
}
public Criteria andReportStatusNotIn(List<Integer> values) {
addCriterion("report_status not in", values, "reportStatus");
return (Criteria) this;
}
public Criteria andReportStatusBetween(Integer value1, Integer value2) {
addCriterion("report_status between", value1, value2, "reportStatus");
return (Criteria) this;
}
public Criteria andReportStatusNotBetween(Integer value1, Integer value2) {
addCriterion("report_status not between", value1, value2, "reportStatus");
return (Criteria) this;
}
public Criteria andHandleStatusIsNull() {
addCriterion("handle_status is null");
return (Criteria) this;
}
public Criteria andHandleStatusIsNotNull() {
addCriterion("handle_status is not null");
return (Criteria) this;
}
public Criteria andHandleStatusEqualTo(Integer value) {
addCriterion("handle_status =", value, "handleStatus");
return (Criteria) this;
}
public Criteria andHandleStatusNotEqualTo(Integer value) {
addCriterion("handle_status <>", value, "handleStatus");
return (Criteria) this;
}
public Criteria andHandleStatusGreaterThan(Integer value) {
addCriterion("handle_status >", value, "handleStatus");
return (Criteria) this;
}
public Criteria andHandleStatusGreaterThanOrEqualTo(Integer value) {
addCriterion("handle_status >=", value, "handleStatus");
return (Criteria) this;
}
public Criteria andHandleStatusLessThan(Integer value) {
addCriterion("handle_status <", value, "handleStatus");
return (Criteria) this;
}
public Criteria andHandleStatusLessThanOrEqualTo(Integer value) {
addCriterion("handle_status <=", value, "handleStatus");
return (Criteria) this;
}
public Criteria andHandleStatusIn(List<Integer> values) {
addCriterion("handle_status in", values, "handleStatus");
return (Criteria) this;
}
public Criteria andHandleStatusNotIn(List<Integer> values) {
addCriterion("handle_status not in", values, "handleStatus");
return (Criteria) this;
}
public Criteria andHandleStatusBetween(Integer value1, Integer value2) {
addCriterion("handle_status between", value1, value2, "handleStatus");
return (Criteria) this;
}
public Criteria andHandleStatusNotBetween(Integer value1, Integer value2) {
addCriterion("handle_status not between", value1, value2, "handleStatus");
return (Criteria) this;
}
public Criteria andNoteIsNull() {
addCriterion("note is null");
return (Criteria) this;
}
public Criteria andNoteIsNotNull() {
addCriterion("note is not null");
return (Criteria) this;
}
public Criteria andNoteEqualTo(String value) {
addCriterion("note =", value, "note");
return (Criteria) this;
}
public Criteria andNoteNotEqualTo(String value) {
addCriterion("note <>", value, "note");
return (Criteria) this;
}
public Criteria andNoteGreaterThan(String value) {
addCriterion("note >", value, "note");
return (Criteria) this;
}
public Criteria andNoteGreaterThanOrEqualTo(String value) {
addCriterion("note >=", value, "note");
return (Criteria) this;
}
public Criteria andNoteLessThan(String value) {
addCriterion("note <", value, "note");
return (Criteria) this;
}
public Criteria andNoteLessThanOrEqualTo(String value) {
addCriterion("note <=", value, "note");
return (Criteria) this;
}
public Criteria andNoteLike(String value) {
addCriterion("note like", value, "note");
return (Criteria) this;
}
public Criteria andNoteNotLike(String value) {
addCriterion("note not like", value, "note");
return (Criteria) this;
}
public Criteria andNoteIn(List<String> values) {
addCriterion("note in", values, "note");
return (Criteria) this;
}
public Criteria andNoteNotIn(List<String> values) {
addCriterion("note not in", values, "note");
return (Criteria) this;
}
public Criteria andNoteBetween(String value1, String value2) {
addCriterion("note between", value1, value2, "note");
return (Criteria) this;
}
public Criteria andNoteNotBetween(String value1, String value2) {
addCriterion("note not between", value1, value2, "note");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {
protected Criteria() {
super();
}
}
public static class Criterion {
private String condition;
private Object value;
private Object secondValue;
private boolean noValue;
private boolean singleValue;
private boolean betweenValue;
private boolean listValue;
private String typeHandler;
public String getCondition() {
return condition;
}
public Object getValue() {
return value;
}
public Object getSecondValue() {
return secondValue;
}
public boolean isNoValue() {
return noValue;
}
public boolean isSingleValue() {
return singleValue;
}
public boolean isBetweenValue() {
return betweenValue;
}
public boolean isListValue() {
return listValue;
}
public String getTypeHandler() {
return typeHandler;
}
protected Criterion(String condition) {
super();
this.condition = condition;
this.typeHandler = null;
this.noValue = true;
}
protected Criterion(String condition, Object value, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.typeHandler = typeHandler;
if (value instanceof List<?>) {
this.listValue = true;
} else {
this.singleValue = true;
}
}
protected Criterion(String condition, Object value) {
this(condition, value, null);
}
protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.secondValue = secondValue;
this.typeHandler = typeHandler;
this.betweenValue = true;
}
protected Criterion(String condition, Object value, Object secondValue) {
this(condition, value, secondValue, null);
}
}
}
XML
<?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="com.macro.mall.mapper.CmsMemberReportMapper">
<resultMap id="BaseResultMap" type="com.macro.mall.model.CmsMemberReport">
<result column="id" jdbcType="BIGINT" property="id" />
<result column="report_type" jdbcType="INTEGER" property="reportType" />
<result column="report_member_name" jdbcType="VARCHAR" property="reportMemberName" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="report_object" jdbcType="VARCHAR" property="reportObject" />
<result column="report_status" jdbcType="INTEGER" property="reportStatus" />
<result column="handle_status" jdbcType="INTEGER" property="handleStatus" />
<result column="note" jdbcType="VARCHAR" property="note" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
id, report_type, report_member_name, create_time, report_object, report_status, handle_status,
note
</sql>
<select id="selectByExample" parameterType="com.macro.mall.model.CmsMemberReportExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from cms_member_report
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<delete id="deleteByExample" parameterType="com.macro.mall.model.CmsMemberReportExample">
delete from cms_member_report
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="com.macro.mall.model.CmsMemberReport">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
SELECT LAST_INSERT_ID()
</selectKey>
insert into cms_member_report (report_type, report_member_name, create_time,
report_object, report_status, handle_status,
note)
values (#{reportType,jdbcType=INTEGER}, #{reportMemberName,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},
#{reportObject,jdbcType=VARCHAR}, #{reportStatus,jdbcType=INTEGER}, #{handleStatus,jdbcType=INTEGER},
#{note,jdbcType=VARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.macro.mall.model.CmsMemberReport">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
SELECT LAST_INSERT_ID()
</selectKey>
insert into cms_member_report
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="reportType != null">
report_type,
</if>
<if test="reportMemberName != null">
report_member_name,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="reportObject != null">
report_object,
</if>
<if test="reportStatus != null">
report_status,
</if>
<if test="handleStatus != null">
handle_status,
</if>
<if test="note != null">
note,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="reportType != null">
#{reportType,jdbcType=INTEGER},
</if>
<if test="reportMemberName != null">
#{reportMemberName,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="reportObject != null">
#{reportObject,jdbcType=VARCHAR},
</if>
<if test="reportStatus != null">
#{reportStatus,jdbcType=INTEGER},
</if>
<if test="handleStatus != null">
#{handleStatus,jdbcType=INTEGER},
</if>
<if test="note != null">
#{note,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.macro.mall.model.CmsMemberReportExample" resultType="java.lang.Long">
select count(*) from cms_member_report
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update cms_member_report
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=BIGINT},
</if>
<if test="record.reportType != null">
report_type = #{record.reportType,jdbcType=INTEGER},
</if>
<if test="record.reportMemberName != null">
report_member_name = #{record.reportMemberName,jdbcType=VARCHAR},
</if>
<if test="record.createTime != null">
create_time = #{record.createTime,jdbcType=TIMESTAMP},
</if>
<if test="record.reportObject != null">
report_object = #{record.reportObject,jdbcType=VARCHAR},
</if>
<if test="record.reportStatus != null">
report_status = #{record.reportStatus,jdbcType=INTEGER},
</if>
<if test="record.handleStatus != null">
handle_status = #{record.handleStatus,jdbcType=INTEGER},
</if>
<if test="record.note != null">
note = #{record.note,jdbcType=VARCHAR},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
update cms_member_report
set id = #{record.id,jdbcType=BIGINT},
report_type = #{record.reportType,jdbcType=INTEGER},
report_member_name = #{record.reportMemberName,jdbcType=VARCHAR},
create_time = #{record.createTime,jdbcType=TIMESTAMP},
report_object = #{record.reportObject,jdbcType=VARCHAR},
report_status = #{record.reportStatus,jdbcType=INTEGER},
handle_status = #{record.handleStatus,jdbcType=INTEGER},
note = #{record.note,jdbcType=VARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
</mapper>