MYBATIS GENERATOR 用法

本文介绍 MyBatis Generator 这一强大的逆向工程工具,它能根据现有数据库表自动生成对应的 POJO 类、Mapper 接口及 XML 映射文件,极大提升了开发效率并减少了错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

步骤 1 : 简介    
步骤 2 : 先运行,看到效果,再学习    
步骤 3 : 模仿和排错    
步骤 4 : 基于前面的知识点    
步骤 5 : jar    
步骤 6 : 配置文件    
步骤 7 : TestMybatisGenerator    
步骤 8 : TestMybatis    
步骤 9 : 局限性    
 

 步骤 1 : 

简介

Mybatis Generator是一个用于Mybatis逆向工程的工具。 
前面学习的方式都是先有pojo, mapper, xml, 然后再创建表。

用逆向工程的方式,首先保证数据库里有表,然后通过Mybatis Generator生成pojo, mapper和xml。 

可以节约大家的时间,提高开发效率,降低出错几率

 步骤 2 : 

先运行,看到效果,再学习

老规矩,先下载右上角的可运行项目,配置运行起来,确认可用之后,再学习做了哪些步骤以达到这样的效果。 

运行 TestMybatisGenerator类,就可以观察到pojo,mapper和xml都生成了,然后再运行 TestMybatis 进行查询测试。

如图所示,运行TestMybatisGenerator之后,刷新项目可以看到自动生成的相关文件

注: CategoryExample 这个是用于多条件查询的,在TestMybatis中有演示

先运行,看到效果,再学习

 步骤 3 : 

模仿和排错

在确保可运行项目能够正确无误地运行之后,再严格照着教程的步骤,对代码模仿一遍。 
模仿过程难免代码有出入,导致无法得到期望的运行结果,此时此刻通过比较正确答案 ( 可运行项目 ) 和自己的代码,来定位问题所在。 
采用这种方式,学习有效果,排错有效率,可以较为明显地提升学习速度,跨过学习路上的各个槛。 

推荐使用diffmerge软件,进行文件夹比较。把你自己做的项目文件夹,和我的可运行项目文件夹进行比较。 
这个软件很牛逼的,可以知道文件夹里哪两个文件不对,并且很明显地标记出来 
这里提供了绿色安装和使用教程:diffmerge 下载和使用教程

 步骤 4 : 

基于前面的知识点

基于Mybatis 入门 这个知识点进行

 步骤 5 : 

jar

需要额外的Mybatis Generator jar包(mybatis-generator-core-1.3.5.jar),在右上角下载,下载后放在lib目录下,并导入项目

导包办法:右键 project->properties->java build path->libaries->add external jars

 步骤 6 : 

配置文件

在src目录下创建generatorConfig.xml

这个配置文件有如下作用
1. 指定 mysql jdbcjar 包的位置,这里用的位置是 e:/project/mybatis/lib/mysql-connector-java-5.0.8-bin.jar 
2. 设置数据库链接账号密码
3. 指定pojo,mapper,xml分别生成的包名
4. 指定表名以及表名对应的类名
4.1 使用自增长键:

<property name="my.isgen.usekeys" value="true"/>

<generatedKey column="id" sqlStatement="JDBC"/>




注1:如果IDE(eclipse或者idea) 项目里导入了jar包,那就不需要么第一步那样配置jar包的绝对路径了代码比较复制代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

<?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>

    <!--数据库驱动-->

    <!--

        如果IDE(eclipse或者idea) 项目里导入了jar包,那么就不需要配置了jar包的绝对路径了

         <classPathEntry    location="e:/project/mybatis/lib/mysql-connector-java-5.0.8-bin.jar"/>

    -->

    <context id="DB2Tables"    targetRuntime="MyBatis3">

        <commentGenerator>

            <property name="suppressDate" value="true"/>

            <property name="suppressAllComments" value="false"/>

        </commentGenerator>

        <!--数据库链接地址账号密码-->

        <jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost/how2java" userId="root" password="admin">

        </jdbcConnection>

        <javaTypeResolver>

            <property name="forceBigDecimals" value="false"/>

        </javaTypeResolver>

        <!--生成Model类存放位置-->

        <javaModelGenerator targetPackage="com.how2java.pojo" targetProject="src">

            <property name="enableSubPackages" value="true"/>

            <property name="trimStrings" value="true"/>

        </javaModelGenerator>

        <!--生成映射文件存放位置-->

        <sqlMapGenerator targetPackage="com.how2java.pojo" targetProject="src">

            <property name="enableSubPackages" value="true"/>

        </sqlMapGenerator>

        <!--生成Dao类存放位置-->

         

        <javaClientGenerator type="XMLMAPPER" targetPackage="com.how2java.mapper"targetProject="src">

            <property name="enableSubPackages" value="true"/>

        </javaClientGenerator>

        <!--生成对应表及类名-->

        <table tableName="category_" domainObjectName="Category" enableCountByExample="false"enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="true"selectByExampleQueryId="false">

            <property name="my.isgen.usekeys" value="true"/>

            <generatedKey column="id" sqlStatement="JDBC"/>       

        </table>

<!--         <table tableName="product_" domainObjectName="Product" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table> -->

    </context>

</generatorConfiguration>

 步骤 7 : 

TestMybatisGenerator

运行成功之后,就会在对应位置生成pojo,xml,和mapper

代码比较复制代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

package com.how2java;

 

import java.io.File;

import java.io.InputStream;

import java.util.ArrayList;

import java.util.List;

 

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;

 

public class TestMybatisGenerator {

 

    public static void main(String[] args) throws Exception {

        List<String> warnings = new ArrayList<String>();

        boolean overwrite = true;

        InputStream is= TestMybatisGenerator.class.getClassLoader().getResource("generatorConfig.xml").openStream();

        ConfigurationParser cp = new ConfigurationParser(warnings);

        Configuration config = cp.parseConfiguration(is);

        is.close();

        DefaultShellCallback callback = new DefaultShellCallback(overwrite);

        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);

        myBatisGenerator.generate(null);

        System.out.println("生成代码成功,刷新项目,查看文件,然后执行TestMybatis.java");

         

    }

}

 步骤 8 : 

TestMybatis

运行TestMybatis,执行自动生成的mapper,借助CategoryExample 进行模糊查询名称里出现了9的分类

TestMybatis

代码比较复制代码

代码行数较多,请点击查看 

 步骤 9 : 

局限性

多对一,一对多需要自己手写,这个工具目前(20170828版本1.3.5)不提供

 

转载:http://how2j.cn/k/mybatis/mybatis-generator/1376.html#nowhere

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值