MyBatis 逆向工程——根据数据表自动生成model、xml映射文件、mapper接口

MyBatis Generator(MBG)的使用

MBG可以根据数据表生成对应的model、xml映射文件、mapper接口,只是简单的生成,还需要根据需求修改。

1、下载jar包

https://github.com/mybatis/generator/releases

解压后有3个jar包,只使用一个:

2、新建一个新的java项目,导入mybatis.jar、mybatis-generator-core.jar、数据库驱动。

3、src下新建config.xml

http://mybatis.org/generator/configreference/xmlconfig.html

到官网复制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>
    <!--  配置数据库连接的包,我们不需要,将其注释掉 -->
<!--    <classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip" />-->

    <!-- context配置环境 -->
    <context id="myMBG" targetRuntime="MyBatis3">

        <!--配置生成的注释-->
        <commentGenerator>
            <!-- 去掉注释 -->
            <property name="suppressAllComments" value="true"/>
            <!-- 去掉注释中的时间戳 -->
            <property name="suppressDate" value="true"/>
        </commentGenerator>

        <!-- 数据库连接信息 -->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/my_db?serverTimezone=GMT"
                        userId="chy"
                        password="abcd">
        </jdbcConnection>

        <!-- 配置jdbc——java之间的类型转换 -->
        <javaTypeResolver >
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- 配置pojo类的生成规则 -->
        <javaModelGenerator targetPackage="com.chy.model" targetProject="src">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!-- 配置xml映射文件的生成规则 -->
        <sqlMapGenerator targetPackage="com.chy.mapper"  targetProject="src">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

        <!-- 配置mapper接口的生成规则 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.chy.mapper"  targetProject="src">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

        <!-- 配置要使用的数据表,自带的配置太繁琐,将其注释掉-->
        <table tableName="user_tb"/>
        <table tableName="goods_tb"/>
<!--        <table schema="my_db" tableName="ALLTYPES" domainObjectName="Customer" >-->
<!--            <property name="useActualColumnNames" value="true"/>-->
<!--            <generatedKey column="ID" sqlStatement="DB2" identity="true" />-->
<!--            <columnOverride column="DATE_FIELD" property="startDate" />-->
<!--            <ignoreColumn column="FRED" />-->
<!--            <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />-->
<!--        </table>-->

    </context>
</generatorConfiguration>

红字部分是需要修改的。主要是修改数据库的连接信息、文件的生成位置。

xml文件的详细配置可参考官方文档:http://mybatis.org/generator/configreference/xmlconfig.html

4、src下新建主类test.Test

http://mybatis.org/generator/running/runningWithJava.html

到官网复制代码来改, 注意是xml那个,修改如下:

package test;

import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.InvalidConfigurationException;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;
import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class Test {
    public static void main(String[] args) throws IOException, XMLParserException, InvalidConfigurationException, SQLException, InterruptedException {
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        File configFile = new File("src/config.xml");
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        myBatisGenerator.generate(null);
    }
}

只需注意xml文件的路径是否正确。

5、运行主类,将生成的文件复制到要使用的项目中,根据需要修改。

只能生成简单的代码,复杂的还需要自己写,比如关联查询。

文件名可随意取,只要xml文件路径对得上即可。常用generatorConfig.xml、Generator.java,觉得难写可以使用简单的单词代替。

官网:http://mybatis.org/generator/index.html

github:https://github.com/mybatis/generator

带GUI的代码生成器:https://github.com/zouzg/mybatis-generator-gui

原文地址:https://www.cnblogs.com/chy18883701161/p/12227853.html

时间: 2024-10-01 02:17:36

MyBatis 逆向工程——根据数据表自动生成model、xml映射文件、mapper接口的相关文章

android自动创建生成model或者po文件

在开发过程中发现model或者po层的数据只是参数不同,其他都是一样,而每次编写的时候同样的事情需要花费很多的时间去写或者拷贝.虽然有些能够快速生成,但是还是需要时间,比如Parcelable接口实现的时候需要写一些东西,现在使用一个对文件编写的类来自动生成文件相信能减少更多的时间.甚至如果开发的接口够规范的话还能直接解析接口生成model或者po文件. 源码如下: import java.io.File; import java.io.FileOutputStream; import java

MyBatis——Mapper.xml映射文件

Mapper.xml映射文件 转载:http://loveshisong.cn/mybatis/2015/01/22/MyBatis(%E4%B8%89)Mapper.xml%E6%98%A0%E5%B0%84%E6%96%87%E4%BB%B6.html 本文结构 select 语句简介 insert update delete 简介 Parameters 参数 ResultMap select 语句简介 查询语句是 MyBatis 中最常用的元素之一,先来个例子 <select id="

SQL映射器Mapper接口(MyBatis)

SQL映射器Mapper接口 MyBatis基于代理机制,可以让我们无需再写Dao的实现.直接把以前的dao接口定义成符合规则的Mapper. 注意事项: 1.接口必须以Mapper结尾,名字是DomainMapper 2.mapper.xml文件要和Mapper接口建立关系,通过namespace:要能连接到Mapper接口   3.mapper.xml中写查询语句的标签的传入参数类型(parameterType).返回结果类型(resultType)必须和mapper接口中对应方法的传入参数

mybatis学习之路(三)别名(typeAliases)mapper接口加载映射文件

一.mybatis默认支持别名 别名 映射的类型 _byte byte _long long _short short _int int _integer int _double double _float float _boolean boolean string String byte Byte long Long short Short int Integer integer Integer double Double float Float boolean Boolean date Da

MyBatis学习(三)-XML映射文件(上)

XML映射文件即Mapper XML 有下列几个顶级元素: cache - 给定命名空间的缓存配置 cache-ref - 缓存配置的引用 resultMap - 描述结果集,是最强大也是最复杂的元素(没有之一) sql - 可复用的语句块 insert update delete select(从前往后说,本次是cache.cache-ref) MyBatis缓存机制 # 一级缓存(默认开启,SqlSession级别的缓存) 我们通过MyBatis每连接一次数据库就会创建一个SqlSessio

mybatis学习------打包xml映射文件

编译mybatis时,idea不会将mybatis的xml映射文件一起打包进jar,即在编译好的jar包里缺少mybatis映射文件,导致网站加载失败 为解决这个问题,可在mybatis对应module的pom.xml中,找到<build></build>,,在其中添加如下代码即可. <!--将mybatis的xml映射文件一起进行打包--> <resources> <resource> <directory>src/main/jav

Mybatis 的 Xml 映射文件中,不同的 Xml 映射文件,id 是否可以重复?

不同的 Xml 映射文件,如果配置了 namespace,那么 id 可以重复:如果没有配 置 namespace,那么 id 不能重复: 原因就是 namespace+id 是作为 Map<String, MapperStatement>的 key 使用的,如果没有 namespace,就剩下 id,那么,id 重复会导致数据互相覆盖. 有了 namespace,自然 id 就可以重复,namespace 不同,namespace+id 自然 也就不同. 原文地址:https://www.c

Mybatis根据数据库中的表自动生成Bean对象与Mapper文件 (小白式教程)

示例IDE采用 IDEA //**********************华丽的分割线****************// 1.新建一个java项目-->在Src目录下创建3个包(Package)与一个文件夹(Directory) Package(包)- ①bean:存放自动生成的Java Bean ②mapper:存放自动生成的mapper接口与对应的.xml文件 ③test:存放一个main方法用于执行自动生成操作 Directory(目录):: lib:存放项目所需要导入的包 2.向lib

mysql数据表自动导为python sqlalchemy可操作对象

python 从数据库表生成model 找了很久才找到这个,我是新手... 现在已有建好的数据库,需要基于原有数据做数据分析的web应用,我选择python+Tornado ,由于不想写SQL语句,就想偷个懒 1.安装工具 1 [email protected]:~/code/py/django/logcloud$ sudo pip install sqlacodegen 2 Downloading/unpacking sqlacodegen 3 Downloading sqlacodegen-