通用mapper代码生成

通用mapper代码生成


基于maven插件方式

pom.xml

             <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.7</version>
                <configuration>
                    <configurationFile>
                        ${basedir}/src/main/resources/generator/generatorConfig.xml
                    </configurationFile>
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.34</version>
                    </dependency>
                    <dependency>
                        <groupId>tk.mybatis</groupId>
                        <artifactId>mapper-generator</artifactId>
                        <version>1.1.5</version>
                    </dependency>
                    <dependency>
                        <groupId>org.freemarker</groupId>
                        <artifactId>freemarker</artifactId>
                        <version>2.3.28</version>
                    </dependency>
                </dependencies>
            </plugin>

generate.properties

## DB config
jdbc.url=jdbc:mysql://localhost:3306/foo?useUnicode=true&serverTimezone=GMT%2B8&characterEncoding=utf-8&allowMultiQueries=true
jdbc.username=root
jdbc.password=root

project=E:/CODE/foo-bar
mapper.plugin=tk.mybatis.mapper.generator.MapperPlugin
baseMapper=com.foo.bar.framework.common.base.BaseMapper
baseBean=com.foo.bar.framework.common.base.BasicBean
package=com.foo.bar.web.mapper

generatorConfig.xml

<?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/generate.properties"/>
    <context id="Mysql" targetRuntime="MyBatis3" defaultModelType="flat">
        <property name="javaFileEncoding" value="UTF-8"/>
        <!--配置是否使用通用 Mapper 自带的注释扩展,默认 true-->
        <!--<property name="useMapperCommentGenerator" value="false"/>-->

        <!--通用 Mapper 插件,可以生成带注解的实体类-->
        <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
            <property name="mappers" value="${baseMapper}"/>
            <property name="caseSensitive" value="true"/>
            <property name="forceAnnotation" value="false"/>
<!--            <property name="beginningDelimiter" value="`"/>-->
<!--            <property name="endingDelimiter" value="`"/>-->
            <!--配置是否启用lombok, 支持如下6种注解-->
            <!--使用Data注解时,Getter,Setter,ToString,EqualsAndHashCode注解无效-->
            <property name="lombok" value="Getter,Setter"/>
            <!--            <property name="lombok" value="Data"/>-->
<!--            <property name="lombok" value="Getter,Setter,ToString,EqualsAndHashCode"/>-->
<!--            <property name="lombokEqualsAndHashCodeCallSuper" value="true"/>-->
        </plugin>

        <!--通用代码生成器插件-->
        <!--mapper接口-->
        <plugin type="tk.mybatis.mapper.generator.TemplateFilePlugin">
            <property name="baseMapper" value="${baseMapper}"/>
            <property name="targetProject" value="src/main/java"/>
            <property name="targetPackage" value="${package}"/>
            <property name="templatePath" value="file:src/main/resources/generator/mapper.ftl"/>
            <property name="mapperSuffix" value="Mapper"/>
            <property name="fileName" value="${tableClass.shortClassName}${mapperSuffix}.java"/>
            <!--默认值是下面这个,可以不配置-->
            <property name="templateFormatter"
                      value="tk.mybatis.mapper.generator.formatter.FreemarkerTemplateFormatter"/>
        </plugin>

        <!--mapper.xml-->
<!--        <plugin type="tk.mybatis.mapper.generator.TemplateFilePlugin">-->
<!--            <property name="targetProject" value="src/main/resources"/>-->
<!--            <property name="targetPackage" value="mappers"/>-->
<!--            <property name="mapperPackage" value="${package}"/>-->
<!--            <property name="templatePath" value="file:src/main/resources/generator/mapperXml.ftl"/>-->
<!--            <property name="mapperSuffix" value="Mapper"/>-->
<!--            <property name="fileName" value="${tableClass.shortClassName}${mapperSuffix}.xml"/>-->
<!--            &lt;!&ndash;默认值是下面这个,可以不配置&ndash;&gt;-->
<!--            <property name="templateFormatter"-->
<!--                      value="tk.mybatis.mapper.generator.formatter.FreemarkerTemplateFormatter"/>-->
<!--        </plugin>-->

        <!--数据库链接URL,用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="${jdbc.url}" userId="${jdbc.username}"
                        password="${jdbc.password}"></jdbcConnection>

        <!--MyBatis 生成器只需要生成 Model-->
        <javaModelGenerator targetPackage="${package}.entity" targetProject="${project}/src/main/java">
            <property name="rootClass" value="${baseBean}" />
        </javaModelGenerator>

        <table tableName="t_answer" domainObjectName="Answer">
            <generatedKey column="id" sqlStatement="Mysql"/>
        </table>

    </context>
</generatorConfiguration>

读取自定模板时需要注意路径<property name="templatePath" value="file:src/main/resources/generator/mapper.ftl"/> 

mapper.ftl

package ${package};

import ${tableClass.fullClassName};
import ${baseMapper};

/**
* 通用 Mapper 代码生成器
*
* @author mapper-generator
*/
public interface ${tableClass.shortClassName}${mapperSuffix} extends BaseMapper<${tableClass.shortClassName}> {

}

mapperXml.ftl 

<?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="${mapperPackage}.${tableClass.shortClassName}${mapperSuffix}">


</mapper>

生成效果:

mapper接口

package com.foo.bar.web.mapper;

import com.foo.bar.web.mapper.entity.Answer;
import com.foo.bar.framework.common.base.BaseMapper;

/**
* 通用 Mapper 代码生成器
*
* @author mapper-generator
*/
public interface AnswerMapper extends BaseMapper<Answer> {

}

entity实体

package com.foo.bar.web.mapper.entity;

import com.foo.bar.framework.common.base.BasicBean;
import lombok.Getter;
import lombok.Setter;

import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;

@Getter
@Setter
@Table(name = "t_answer")
public class Answer extends BasicBean {
    /**
     * 自增ID
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY, generator = "SELECT LAST_INSERT_ID()")
    private Long id;

    /**
     * 提问id
     */
    @Column(name = "question_id")
    private Long questionId;

    /**
     * 答复内容
     */
    private String content;

    /**
     * 图片
     */
    private String picture;

    /**
     * 答复人工号
     */
    @Column(name = "answerer_code")
    private String answererCode;

    /**
     * 答复人名字
     */
    @Column(name = "answerer_name")
    private String answererName;

    /**
     * 是否删除
     */
    private Byte deleted;

    /**
     * 创建时间
     */
    @Column(name = "create_time")
    private Date createTime;

    /**
     * 创建人
     */
    private String creator;

    /**
     * 修改时间
     */
    @Column(name = "modified_time")
    private Date modifiedTime;

    /**
     * 修改人
     */
    private String modifier;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值