MyBatis逆向工程

本文详细介绍了如何在Maven项目中使用MyBatisGenerator进行逆向工程,包括配置pom.xml文件引入插件,创建generatorConfig.xml配置文件,以及处理可能出现的问题,如表字段与映射文件不一致的情况。
摘要由CSDN通过智能技术生成

MyBatis逆向工程:由已有的数据库表自动生成 实体类、SQL映射接口、SQL映射文件

步骤:

        一、配置pom文件:

                ① 引入mybatis的依赖:基本就是mybatis核心依赖、junit测试依赖、log4j的依赖

                ② 配置mybatis逆向工程所需的插件:如下

 <build>
        <!--构建过程中需要用到的插件-->
        <plugins>
            <!--具体插件,逆向工程的操作是以构建过程中插件的形式出现的-->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.4.1</version>
                <!--插件的依赖-->
                <dependencies>
                    <!--逆向工程核心依赖-->
                    <dependency>
                        <groupId>org.mybatis.generator</groupId>
                        <artifactId>mybatis-generator-core</artifactId>
                        <version>1.4.1</version>
                    </dependency>
                    <!--MySql驱动-->
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>8.0.20</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>

        二、创建逆向工程的配置文件:generatorConfig.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>
    <!--
       targetRuntime:执行生成逆向工程的版本
            MyBatis3Simple:生成基本的CRUD (增删改查(查询所有,查询单个)五个)
            MyBatis3:生成带条件的CRUD
    -->
    <context id="DB2Tables" targetRuntime="MyBatis3Simple">
        <!--数据库连接-->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/ssm?serverTimezone=UTC"
                        userId="账号"
                        password="密码">
            <!-- 解决table schema中有多个重名的表生成表结构不一致问题 -->
            <property name="nullCatalogMeansCurrent" value="true"/>
        </jdbcConnection>

        <!--javaBean/实体类 的生成策略
            targetPackage="生成的包的名字"
            targetProject="生成的位置"
            下述标签属性含义基本与该标签一致-->
        <javaModelGenerator
                targetPackage="com.java.ssm.pojo"
                targetProject=".\src\main\java">
            <!--enableSubPackages:是否允许生成子包,也即将.解析为子包分隔符,否则.将作为包的名字-->
            <property name="enableSubPackages" value="true"></property>
            <!--由于是根据表中字段生成属性,trimStrings为将字段的前后空格去除-->
            <property name="trimStrings" value="true"></property>
        </javaModelGenerator>

        <!--映射文件生成策略(mapper.xml)-->
        <sqlMapGenerator
                targetPackage="com.java.ssm.mapper"
                targetProject=".\src\main\resources">
            <property name="enableSubPackages" value="true"></property>
        </sqlMapGenerator>

        <!--mapper接口的生成策略-->
        <javaClientGenerator
                type="XMLMAPPER"
                targetPackage="com.java.ssm.mapper"
                targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true"></property>
        </javaClientGenerator>


        <!--逆向分析的表
            tableName:指定对应的表,设置为*,则匹配所有表,此时可以不写domainObjectName
            domainObjectName:属性指定生成出来的实体类的类名-->
        <table tableName="t_emp" domainObjectName="Emp"></table>
        <table tableName="t_dept" domainObjectName="Dept"></table>
    </context>
</generatorConfiguration>

        三、 使用:

        四、出现过的问题:

        最初没有加nullCatalogMeansCurrent出现过映射文件字段和表字段不一致的情况

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

       具体解决是查看了大佬的这篇文章  指路    

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值