开发者社区> ben4> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Intellij idea中使用Mybatis Generator

简介: Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件。
+关注继续查看

Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件。
mybatis-generator是一款在使用mybatis框架时,自动生成model,mapper和mapper.xml的工具,很大程度上减少了业务开发人员的手动编码时间
Mybatis-Generator官方文档:http://www.mybatis.org/generator/
Mybatis-Generator的下载可以到这个地址:https://github.com/mybatis/generator/releases
在IDEA中你可以在插件库中找到安装就好了

下面来介绍下使用方法

一、在pom.xml中添加plugin

<plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.5</version>
                <dependencies>
                    <dependency>
                        <groupId> mysql</groupId>
                        <artifactId> mysql-connector-java</artifactId>
                        <version> 5.1.39</version>
                    </dependency>
                    <dependency>
                        <groupId>org.mybatis.generator</groupId>
                        <artifactId>mybatis-generator-core</artifactId>
                        <version>1.3.5</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <!--允许移动生成的文件 -->
                    <verbose>true</verbose>
                    <!-- 是否覆盖 -->
                    <overwrite>true</overwrite>
                    <!-- 自动生成的配置 -->
                    <configurationFile>
                        src/main/resources/mybatis-generator.xml</configurationFile>
                </configuration>
            </plugin>

configurationFile是说明mybatis-generator的配置文件的位置
在插件中要引入mysqlmybatis.generator的依赖,不然就要说明jar包的路径了
假如不在plugin中加mysql的话启动会包这样的错Exception getting JDBC Driver: com.mysql.jdbc.Driver也就是找不到mysql数据库的驱动

二、mybatis-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="MysqlTables" targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="false"/>
        </commentGenerator>
        <!--数据库链接地址账号密码-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://127.0.0.1:3306/***"
                        userId="****"
                        password="****">
        </jdbcConnection>
        <!--数据库类型和java类型的控制转换-->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!--生成Model类存放位置-->
        <javaModelGenerator targetPackage="com.yidu.armedical.model.po" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!--生成映射文件存放位置-->
        <sqlMapGenerator targetPackage="com.yidu.armedical.mapper" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <!--生成Dao类存放位置-->
        <!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码
                type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
                type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象
                type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
        -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.yidu.armedical.mapper" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        <!--生成对应表及类名-->
        <table tableName="product_model" domainObjectName="productModel" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
    </context>
</generatorConfiguration>

<jdbcConnection>用于配置mysql数据库连接,需要路径,驱动,数据库用户名和密码。
<javaModelGenerator>生成model实体类文件位置
<sqlMapGenerator>生成mapper.xml配置文件位置
<javaClientGenerator>生成mapper接口文件位置
<table>需要生成的实体类对应的表名,多个实体类复制多份该配置即可
可选:
1,schema:数据库的schema;
2,catalog:数据库的catalog;
3,alias:为数据表设置的别名,如果设置了alias,那么生成的所有的SELECT SQL语句中,列名会变成:alias_actualColumnName
4,domainObjectName:生成的domain类的名字,如果不设置,直接使用表名作为domain类的名字;可以设置为somepck.domainName,那么会自动把domainName类再放到somepck包里面;
5,enableInsert(默认true):指定是否生成insert语句;
6,enableSelectByPrimaryKey(默认true):指定是否生成按照主键查询对象的语句(就是getById或get);
7,enableSelectByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询语句;
8,enableUpdateByPrimaryKey(默认true):指定是否生成按照主键修改对象的语句(即update);
9,enableDeleteByPrimaryKey(默认true):指定是否生成按照主键删除对象的语句(即delete);
10,enableDeleteByExample(默认true):MyBatis3Simple为false,指定是否生成动态删除语句;
11,enableCountByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询总条数语句(用于分页的总条数查询);
12,enableUpdateByExample(默认true):MyBatis3Simple为false,指定是否生成动态修改语句(只修改对象中不为空的属性);
13,modelType:参考context元素的defaultModelType,相当于覆盖;
14,delimitIdentifiers:参考tableName的解释,注意,默认的delimitIdentifiers是双引号,如果类似MYSQL这样的数据库,使用的是(反引号,那么还需要设置context的beginningDelimiter和endingDelimiter属性)
15,delimitAllColumns:设置是否所有生成的SQL中的列名都使用标识符引起来。默认为false,delimitIdentifiers参考context的属性

三、到此为止,所有的配置已完毕。

方式一:使用idea的maven helper插件直接快速生成

image.png

方式二:在Intellij IDEA添加一个“Run运行”选项,使用maven运行mybatis-generator-maven-plugin插件 :
首先选择配置edit configuration编辑结构
image.png

然后创建maven运行项
image.png

配置命令 mybatis-generator:generate -e
image.png

运行
image.png

运行成功
image.png

参考文章:
http://blog.csdn.net/liudongdong0909/article/details/51534735
http://www.jianshu.com/p/e09d2370b796

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Intellij IDEA 快捷键整理(TonyCody)
【常规】 1. Ctrl+Shift + Enter,语句完成 1. “!”,否定完成,输入表达式时按 “!”键 Ctrl+E,最近的文件 Ctrl+Shift+E,最近更改的文件 Shift+Click,可以关闭文件 Ctrl+[ OR ],可以跑到大括号的开头与结尾 Ctrl+F12,可以显示.
1027 0
IntelliJ IDEA快捷键
1. Ctrl + Space 完成类、方法、变量名称的自动输入 2. Ctrl + N(Ctrl + Shift + N) 跳转到指定的Java文件(其它文件) 3. Ctrl + B 跳转到定义处 4. Ctrl + Alt + T 用if、while、try catch来围绕选中的代码行 5. Ctrl + Alt + B 跳转到方法实现处 6. Ctrl + W 按一个word来进行选择操作,在IDEA里的这个快捷键功能是先选择光标所在字符处的单词,然后是选择源 代码的扩展区域。
594 0
IntelliJ IDEA的几种常见的快捷键
在编写代码的时候直接输入psv就会看到一个psvm的提示,此时点击tab键一个main方法就写好了。 psvm 也就是public static void main的首字母。 依次还有在方法体内键入for会有一个fori的提示,选中然后tab键,就会自动创建一个for循环。
630 0
IntelliJ IDEA快捷键使用说明
这是我从网上找的,大家如果不愿意下载可以自己到网上搜索,很容易的。
421 0
Intellij IDEA用快捷键自动生成序列化id
最终效果: 类继承了Serializable接口之后,使用alt+enter快捷键自动创建序列化id
0 0
IntelliJ IDEA 快捷键终极大全,速度收藏!
自动代码 常用的有fori/sout/psvm+Tab即可生成循环、System.out、main方法等boilerplate样板代码 。 例如要输入for(User user : users)只需输入user.for+Tab ; 再比如,要输入Date birthday = user.getBirthday()只需输入user.getBirthday().var+Tab即可。 代码标签输入完成后,按Tab,生成代码。
0 0
Intellij IDEA快捷键与使用技巧
Intellij IDEA快捷键与使用技巧
0 0
IntelliJ IDEA - 复制文件全限定名快捷键
IntelliJ IDEA - 复制文件全限定名快捷键
0 0
+关注
ben4
Java学习者,热爱编程,喜欢与各领域人士交流
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Java Spring Boot开发实战系列课程【第6讲】:Spring Boot 2.0实战MyBatis与优化(Java面试题)
立即下载
蚂蚁金服高级开发工程师萧恺:IDEA 插件开发入门教程
立即下载
yqdh_58c132e5942...1510470130.pdf
立即下载