为了账号安全,请及时绑定邮箱和手机立即绑定

Mybatis官方生成器学习入门

标签:
Java 数据库
概述

Mybatis官方生成器(Mybatis Generator)是一个强大的代码生成工具,主要用于自动化生成Mybatis相关的映射文件、Java实体类以及对应的Mapper接口。通过Mybatis官方生成器学习入门,开发者可以减少手工编写这些重复代码的工作量,提高开发效率。该工具支持多种数据库,并允许开发者根据需要对生成的代码进行定制化配置。

Mybatis官方生成器简介

Mybatis官方生成器(Mybatis Generator)是一个强大的代码生成工具,主要用于自动化生成Mybatis相关的映射文件(Mapper XML)、Java实体类(POJO)以及对应的Mapper接口。通过Mybatis Generator,开发者可以减少手工编写这些重复代码的工作量,提高开发效率。

Mybatis生成器定义

Mybatis Generator (MBG) 是一个基于命令行的工具,能够根据数据库中的表结构自动生成Java类、Mapper XML文件和接口。它支持多种数据库,如MySQL、Oracle、SQLServer等。

生成器的主要功能
  • 生成Java实体类(POJO):根据数据库表结构生成相应的Java实体类。
  • 生成Mapper XML文件:生成用于Mybatis的持久化操作的XML文件。
  • 生成Mapper接口:生成Java接口,用于封装对数据库的操作。
  • 支持自定义配置:开发者可以根据需要对生成的代码进行定制化配置。
使用场景介绍
  • 快速开发:在项目初期,使用Mybatis Generator可以快速生成基本的持久层代码。
  • 维护现有项目:对于已经存在的项目,如果数据库表结构发生变化,可以使用Mybatis Generator生成更新后的持久化代码。
  • 减少手工编写代码的工作量:减少开发人员手动编写大量重复代码的时间。
环境搭建
开发环境要求
  • Java环境:确保已安装JDK,并且环境变量已正确配置。
  • Maven:推荐使用Maven管理项目依赖和构建。
  • 数据库:确保数据库服务器已安装并运行,且可以访问数据库中的表。
Maven依赖配置

在Maven项目中引入Mybatis Generator的依赖,在pom.xml文件中添加如下依赖:

<dependencies>
    <!-- Mybatis Generator -->
    <dependency>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-core</artifactId>
        <version>1.3.7</version>
    </dependency>
</dependencies>
配置文件介绍

配置文件是Mybatis Generator的核心部分,用于指定数据库连接信息、表名、生成的代码位置等。

配置文件通常命名为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.dtd">
<generatorConfiguration>
    <!-- 配置数据库连接 -->
    <context id="default" targetRuntime="mybatis3" defaultModelType="flat">
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/db_name"
                        userId="root"
                        password="root">
        </jdbcConnection>

        <!-- 配置Java输出 -->
        <javaModelGenerator targetPackage="com.example.entity"
                            targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <!-- 配置SQL映射文件输出 -->
        <sqlMapGenerator targetPackage="com.example.mapper"
                         targetProject="src/main/resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>

        <!-- 配置接口输出 -->
        <javaClientGenerator type="ANNOTATEDMAPPER"
                             targetPackage="com.example.mapper"
                             targetProject="src/main/java">
        </javaClientGenerator>

        <!-- 配置表生成 -->
        <table tableName="example_table" domainObjectName="ExampleTable" enableCountByExample="true"/>
    </context>
</generatorConfiguration>
生成器配置详解
配置文件结构

配置文件分为多个部分,每一部分都有特定的功能:

  • context:配置文件的根元素,指定生成器的运行环境和其他选项。
  • jdbcConnection:配置数据库连接参数。
  • javaModelGenerator:配置Java实体类的生成参数。
  • sqlMapGenerator:配置SQL映射文件的生成参数。
  • javaClientGenerator:配置Mapper接口的生成参数。
  • table:指定需要生成代码的表。
常用配置项说明
  • context

    • id:唯一标识符。
    • targetRuntime:指定生成器的目标Mybatis版本。
    • defaultModelType:指定模型类型,如flathierarchical等。
  • jdbcConnection

    • driverClass:数据库驱动类。
    • connectionURL:数据库连接URL。
    • userId:数据库用户名。
    • password:数据库密码。
  • javaModelGenerator

    • targetPackage:生成的Java实体类所在的包名。
    • targetProject:生成Java文件的目标项目路径。
    • enableSubPackages:是否启用子包。
    • trimStrings:是否去除字符串中的前后空格。
  • sqlMapGenerator

    • targetPackage:生成的SQL映射文件所在的包名。
    • targetProject:生成SQL映射文件的目标项目路径。
    • enableSubPackages:是否启用子包。
  • javaClientGenerator

    • type:生成的Mapper接口类型,如ANNOTATEDMAPPERXMLMAPPER
    • targetPackage:生成的Mapper接口所在的包名。
    • targetProject:生成Mapper接口的目标项目路径。
  • table
    • tableName:数据库表名。
    • domainObjectName:生成的Java实体类名。
    • enableCountByExample:是否生成查询记录数的方法。
示例配置文件展示

下面是一个完整的配置文件示例:

<?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.dtd">
<generatorConfiguration>
    <context id="default" targetRuntime="mybatis3" defaultModelType="flat">
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/db_name"
                        userId="root"
                        password="root">
        </jdbcConnection>

        <javaModelGenerator targetPackage="com.example.entity"
                            targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <sqlMapGenerator targetPackage="com.example.mapper"
                         targetProject="src/main/resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>

        <javaClientGenerator type="ANNOTATEDMAPPER"
                             targetPackage="com.example.mapper"
                             targetProject="src/main/java">
        </javaClientGenerator>

        <table tableName="example_table" domainObjectName="ExampleTable" enableCountByExample="true"/>
        <table tableName="example_table2" domainObjectName="ExampleTable2"/>
    </context>
</generatorConfiguration>
实战演练
数据库连接配置

首先,配置数据库连接信息,确保能够正确连接到目标数据库。在generatorConfig.xml文件中填写数据库连接的相关参数,确保driverClassconnectionURLuserIdpassword的正确性。

示例配置:

<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                connectionURL="jdbc:mysql://localhost:3306/db_name"
                userId="root"
                password="root">
</jdbcConnection>
表生成器使用

定义需要生成代码的表信息。在配置文件的<table>标签中指定表名和对应的实体类名。

示例配置:

<table tableName="example_table" domainObjectName="ExampleTable" enableCountByExample="true"/>
<table tableName="example_table2" domainObjectName="ExampleTable2"/>
实体类生成

配置好数据库连接和表信息后,可以生成Java实体类。通过<javaModelGenerator>标签进行配置。

示例配置:

<javaModelGenerator targetPackage="com.example.entity"
                    targetProject="src/main/java">
    <property name="enableSubPackages" value="true"/>
    <property name="trimStrings" value="true"/>
</javaModelGenerator>

生成的Java实体类示例如下:

package com.example.entity;

public class ExampleTable {
    private int id;
    private String name;
    private String description;

    // getters and setters
}
常见问题及解决方法
常见错误及解决思路

无法连接数据库

  • 问题描述:运行Mybatis Generator命令时,提示无法连接到数据库。
  • 解决方法:检查数据库连接参数是否正确,确保数据库服务器能够被访问,数据库用户名和密码是否正确。

生成代码错误

  • 问题描述:生成的代码存在语法错误或不符合预期。
  • 解决方法:检查配置文件中的表名、包名等信息是否正确,确保生成的代码路径存在。
生成器配置注意事项
  • 数据库连接信息:确保数据库连接信息(包括用户名、密码、URL等)的正确性。
  • 表名和实体类名:确保表名和实体类名的正确性,避免生成错误的代码。
  • 生成代码的路径:确保生成代码的目标路径存在,且具有写权限。
生成器与IDE集成

Maven插件集成

在Maven项目中,可以通过插件配置方便地使用Mybatis Generator。配置pom.xml文件以集成Mybatis Generator插件。

示例配置:

<build>
    <plugins>
        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.3.7</version>
            <configuration>
                <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
                <overwrite>true</overwrite>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>5.1.47</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>
总结与拓展
生成器使用总结

Mybatis Generator是一个非常实用的工具,能够自动化生成Mybatis相关的持久化代码。通过配置文件,开发者可以灵活地控制代码生成的细节,大大提高了开发效率。

进阶学习方向
  • 自定义插件:了解如何编写自定义插件,扩展Mybatis Generator的功能。
  • 代码生成模板:学习如何定制生成代码的模板,满足特定的业务需求。
  • 自动化集成:将Mybatis Generator集成到持续集成(CI)中,自动化生成代码。

推荐学习网站:慕课网 提供了大量的视频教程和实战项目,非常适合编程学习。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消