tk.mybatis 逆向工程,生成带数据库注释的实体类

1,pom 依赖,以 oracle 数据库为例

<build>
        <plugins>
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.7</version>
                <configuration>
                    <!-- 配置文件所在位置 -->
                    <configurationFile>src/main/resources/mybatis/config/generator.xml</configurationFile>
                    <!-- 当生成的类已经存在时,是否覆盖 -->
                    <overwrite>true</overwrite>
                </configuration>
                <dependencies>
                    <!-- 数据库连接 -->
                    <dependency>
                        <groupId>com.oracle</groupId>
                        <artifactId>ojdbc6</artifactId>
                        <version>11.1.0.7.0</version>
                    </dependency>
                    <!-- 通用 mapper 插件 -->
                    <dependency>
                        <groupId>tk.mybatis</groupId>
                        <artifactId>mapper</artifactId>
                        <version>4.1.5</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>

2,generator.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>
    <context id="Oracle" targetRuntime="MyBatis3Simple" defaultModelType="flat">

        <!-- 通用 Mapper 继承的接口 -->
        <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
            <property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
        </plugin>

        <commentGenerator>
            <!-- 不生成时间戳 -->
            <property name="suppressDate" value="true" />
            <!-- 生成注解 -->
            <property name="suppressAllComments" value="false" />
            <!-- 注解采用数据库的标注,suppressAllComments 必须设置为 false 才会生效 -->
            <property name="addRemarkComments" value="true" />
        </commentGenerator>

        <!-- 数据库连接信息 -->
        <jdbcConnection
            driverClass="oracle.jdbc.driver.OracleDriver"
            connectionURL="jdbc:oracle:thin:@192.168.200.100:1521:helowin"
            userId="test"
            password="oracle"
        >
            <!-- oracle 获取数据库注解的方式,想要获取数据库注解必须添加 -->
            <property name="remarksReporting" value="true"/>
            <!-- mysql 获取数据库注解的方式,想要获取数据库注解必须添加 -->
            <!--<property name="useInformationSchema" value="true"/>-->
            <!-- 其它类型数据库暂不支持 -->
        </jdbcConnection>

        <!-- 生成实体类位置 -->
        <javaModelGenerator targetPackage="com.hwq.web.server.entity" targetProject="src/main/java">

        </javaModelGenerator>

        <!-- 生成的 xml 映射文件位置 -->
        <sqlMapGenerator targetPackage="mybatis/mapper" targetProject="src/main/resources">

        </sqlMapGenerator>

        <!-- 生成 mapper 接口的位置 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.hwq.web.server.mapper" targetProject="src/main/java">

        </javaClientGenerator>

        <!-- 数据表 和 JAVA 实体的映射,tableName 表名,domainObjectName 实体名 -->
        <table tableName="t_user" domainObjectName="User">

        </table>
    </context>
</generatorConfiguration>

1,每次需要生成哪个表,就把配置文件的 table 的标签的属性进行修改
2,如果想要一次性生成所有表,可以把 tableName 配置为 *,一般不推荐这么干,开发项目的时候最好是要用到哪些表,才去生成

3,使用 maven 运行插件

mvn org.mybatis.generator:mybatis-generator-maven-plugin:1.3.7:generate -e

注意命令最后的 -e 不能少,要不然生成文件 不是 utf-8 格式,中文会乱码

3,编辑器 idea 调用方式,如果你采用的是 idea 编辑器,那就简单多了,不需要这一长串的启动命令

1,点开编辑器右边的 maven 项目管理
2,找到当前项目,打开 Plugin 找到 mybatis-generator
3,双击 mybatis-generator:genrator 插件就会启动了

image.png

新版的逆向工程插件才会有 help 那个命令,有时候我们在 pom 文件中引入 tk.mybatis.mapper 的时候可能 maven 会拉取不到对应的 jar 包,这时候我们就可以双击 help 命令帮助我们拉取

4,生成的效果

package com.hwq.web.server.entity;

import javax.persistence.*;

@Table(name = "T_MENU")
public class Menu {
    /**
     * 菜单表主键
     */
    @Id
    @Column(name = "ID")
    private String id;

    /**
     * 菜单名
     */
    @Column(name = "NAME")
    private String name;

    /**
     * 菜单对应的图标
     */
    @Column(name = "ICON")
    private String icon;

    /**
     * 菜单对应的路径
     */
    @Column(name = "PATH")
    private String path;

    /**
     * 外键,菜单表主键
     */
    @Column(name = "PID")
    private String pid;

    /**
     * 排列序号
     */
    @Column(name = "ORDER_NUM")
    private Short orderNum;

    /**
     * 获取菜单表主键
     *
     * @return ID - 菜单表主键
     */
    public String getId() {
        return id;
    }

    /**
     * 设置菜单表主键
     *
     * @param id 菜单表主键
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 获取菜单名
     *
     * @return NAME - 菜单名
     */
    public String getName() {
        return name;
    }

    /**
     * 设置菜单名
     *
     * @param name 菜单名
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取菜单对应的图标
     *
     * @return ICON - 菜单对应的图标
     */
    public String getIcon() {
        return icon;
    }

    /**
     * 设置菜单对应的图标
     *
     * @param icon 菜单对应的图标
     */
    public void setIcon(String icon) {
        this.icon = icon;
    }

    /**
     * 获取菜单对应的路径
     *
     * @return PATH - 菜单对应的路径
     */
    public String getPath() {
        return path;
    }

    /**
     * 设置菜单对应的路径
     *
     * @param path 菜单对应的路径
     */
    public void setPath(String path) {
        this.path = path;
    }

    /**
     * 获取外键,菜单表主键
     *
     * @return PID - 外键,菜单表主键
     */
    public String getPid() {
        return pid;
    }

    /**
     * 设置外键,菜单表主键
     *
     * @param pid 外键,菜单表主键
     */
    public void setPid(String pid) {
        this.pid = pid;
    }

    /**
     * 获取排列序号
     *
     * @return ORDER_NUM - 排列序号
     */
    public Short getOrderNum() {
        return orderNum;
    }

    /**
     * 设置排列序号
     *
     * @param orderNum 排列序号
     */
    public void setOrderNum(Short orderNum) {
        this.orderNum = orderNum;
    }
}
package com.hwq.web.server.mapper;

import com.hwq.web.server.entity.Menu;
import tk.mybatis.mapper.common.Mapper;

public interface MenuMapper extends Mapper<Menu> {
}
<?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.hwq.web.server.mapper.MenuMapper">
  <resultMap id="BaseResultMap" type="com.hwq.web.server.entity.Menu">
    <!--
      WARNING - @mbg.generated
    -->
    <id column="ID" jdbcType="VARCHAR" property="id" />
    <result column="NAME" jdbcType="VARCHAR" property="name" />
    <result column="ICON" jdbcType="VARCHAR" property="icon" />
    <result column="PATH" jdbcType="VARCHAR" property="path" />
    <result column="PID" jdbcType="VARCHAR" property="pid" />
    <result column="ORDER_NUM" jdbcType="DECIMAL" property="orderNum" />
  </resultMap>
</mapper>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容