mybatis-generate使用maven插件自动生成实体类

<p>          自动生成实体类的方式有两种,一种是使用maven插件生成实体类,另一种使用GeneratorUitl.java类运行generatorConfig.xml文件生成实体类。并且还可以生成XXXEXAMPLE,和XXMapper等文件,可以直接去生成数据库使用文件,以及Mapper,大大减少了开发时间。</p>
<p>        主要分为三个步骤,</p>
<ul>
<li>在pom文件中添加maven插件</li>
<li>创建generatorConfig.xml文件,并且链接到本地数据库地址,</li>
<li>在IDEA右侧中Maven中打开mybatis-generator,点击mybatis-generator:generate即可生成对应的Entity,dao,以及Mapper文件地址</li>
</ul>
<h4><a id="pom_6"></a>pom中添加插件</h4>
<p>这个是在添加maven插件</p>
<pre><code class="lang-"> <build>

<plugins>

<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<configuration>
<configurationFile>

</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.21</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</code></pre>
<p>添加mybatis的所需要的基本包</p>
<pre><code class="lang-"> <dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.21</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
</code></pre>
<h4><a id="generatorConfigxml_53"></a>创建generatorConfig.xml文件</h4>
<pre><code class="lang-"><?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>


&lt;context id="default" targetRuntime="MyBatis3"&gt;

    &lt;!-- optional, 旨在创建class时,对注释进行控制 --&gt;
    &lt;commentGenerator&gt;
        &lt;property name="suppressDate" value="true"/&gt;
        &lt;!-- 是否去除自动生成的注释 true:是 : false:否 --&gt;
        &lt;property name="suppressAllComments" value="true"/&gt;
    &lt;/commentGenerator&gt;

    &lt;!--jdbc的数据库连接,以下为MySQL版本8以上的JDBC驱动--&gt;
    &lt;jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                    connectionURL="jdbc:mysql://localhost:3306/db_1?serverTimezone=UTC"
                    userId="root" password="123456"&gt;&lt;/jdbcConnection&gt;

    &lt;!--非必须,类型处理器,在数据库类型和java类型之间的转换控制--&gt;
    &lt;javaTypeResolver&gt;
        &lt;!-- 默认情况下数据库中的 decimal,bigInt 在 Java 对应是 sql 下的 BigDecimal 类 --&gt;
        &lt;!-- 不是 double 和 long 类型 --&gt;
        &lt;!-- 使用常用的基本类型代替 sql 包下的引用类型 --&gt;
        &lt;property name="forceBigDecimals" value="false"/&gt;
    &lt;/javaTypeResolver&gt;

    &lt;!-- targetPackage:生成的实体类所在的包 --&gt;
    &lt;!-- targetProject:生成的实体类所在的位置 --&gt;
    &lt;javaModelGenerator targetPackage="com.felixwang.site.generator.entity" targetProject="src/main/java"&gt;
        &lt;!-- 是否允许子包 --&gt;
        &lt;property name="enableSubPackages" value="false"/&gt;
        &lt;!-- 是否对modal添加构造函数 --&gt;
        &lt;property name="constructorBased" value="true"/&gt;
        &lt;!-- 是否清理从数据库中查询出的字符串左右两边的空白字符 --&gt;
        &lt;property name="trimStrings" value="true"/&gt;
        &lt;!-- 建立modal对象是否不可改变 即生成的modal对象不会有setter方法,只有构造方法 --&gt;
        &lt;property name="immutable" value="false"/&gt;
    &lt;/javaModelGenerator&gt;

    &lt;!-- targetPackage 和 targetProject:生成的 mapper 文件的包和位置 --&gt;
    &lt;sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"&gt;
        &lt;!-- 针对数据库的一个配置,是否把 schema 作为字包名 --&gt;
        &lt;property name="enableSubPackages" value="false"/&gt;
    &lt;/sqlMapGenerator&gt;

    &lt;!-- targetPackage 和 targetProject:生成的 interface 文件的包和位置 --&gt;
    &lt;javaClientGenerator type="XMLMAPPER" targetPackage="com.felixwang.site.generator.dao" targetProject="src/main/java"&gt;
        &lt;!-- 针对 oracle 数据库的一个配置,是否把 schema 作为字包名 --&gt;
        &lt;property name="enableSubPackages" value="false"/&gt;
    &lt;/javaClientGenerator&gt;
    &lt;!-- 需要映射的表,以及对应的实体类名 --&gt;
    &lt;table tableName="work" domainObjectName="Work"&gt;&lt;/table&gt;

&lt;/context&gt;

</generatorConfiguration>

</code></pre>
<p>以上的就我个人的配置,其中的包命名和数据库地址,需要修改为个人即可</p>
<h4><a id="_120"></a>生成实体类</h4>
<p>        在IDEA中,view->Tool Windwos->Maven点击一下,项目的右侧会显示项目结构

<img src="https://upload-images.jianshu.io/upload_images/12201055-7283983ef98df03c.png" alt="">

则会自动生成对应的Entity类以及Mapper文件,下面是我自动生成对应的实体类,

<img src="https://upload-images.jianshu.io/upload_images/12201055-fd0ca9bb9c8aa55d.png" alt="">
可以直接通过写java类直接区做增删改查,以上就是今日分享,上篇是通过jpa实现,但是jpa不适用与复杂的联合查询,自动生成的mapper文件可以自己编写sql,已达到动态查询复杂sql的目的</p>

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容