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

Mybatis官方生成器入门教程:快速搭建Mybatis项目

标签:
SSM
概述

Mybatis官方生成器是一个用于生成Mybatis相关代码的工具,可以根据数据库表自动生成Mybatis的映射文件、Java实体类、DAO接口和相应的实现类。它提供了灵活的配置选项,可以根据需要生成不同类型的代码,极大地提高了开发效率。此外,Mybatis官方生成器还支持自定义生成代码的模板和配置,以满足不同的开发需求。

Mybatis官方生成器简介

什么是Mybatis官方生成器

Mybatis官方生成器(以下简称Mybatis Generator)是一个用于生成Mybatis相关代码的工具。它可以根据数据库表自动生成Mybatis的映射文件(.xml)、Java实体类、DAO接口和相应的实现类。Mybatis Generator提供了灵活的配置选项,可以根据需要生成不同类型的代码,极大地提高了开发效率。

为什么使用Mybatis官方生成器

使用Mybatis Generator的主要原因如下:

  1. 提高开发效率:通过自动生成代码,减少了手动编写大量重复代码的工作量。
  2. 减少错误:自动生成的代码减少了因人为因素导致的错误,提高了代码质量。
  3. 适应变化:当数据库结构改变时,只需重新生成代码,减少了维护成本。
  4. 降低学习曲线:对于初学者来说,Mybatis Generator可以快速帮助他们上手Mybatis,减少学习时间。
安装与环境配置

准备开发环境

在开始使用Mybatis Generator之前,需要准备以下开发环境:

  • JDK:确保已经安装了JDK,推荐版本为JDK 8或以上。
  • IDE:推荐使用IntelliJ IDEA或Eclipse作为开发工具。
  • Mybatis:需要已安装Mybatis框架,可以使用Maven或Gradle等构建工具进行依赖管理。
  • 数据库:安装并配置好数据库,可以是MySQL、Oracle、SQL Server等。

下载并引入Mybatis官方生成器插件

为了使用Mybatis Generator,需要将其引入到项目中。这里以Maven为例,介绍如何引入Mybatis Generator插件。

  1. 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.38</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>
  1. 准备generatorConfig.xml配置文件

该配置文件用于定义生成器的配置信息,包括数据库连接信息、生成代码的输出目录、生成代码的模板等。

<generatorConfiguration>
    <context id="default" targetRuntime="MyBatis3Simple">
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" 
                        connectionURL="jdbc:mysql://localhost:3306/mydatabase" 
                        userId="root" 
                        password="password"/>
        <javaModelGenerator targetPackage="com.example.model" 
                            targetProject="src/main/java"/>
        <sqlMapGenerator targetPackage="com.example.mapper" 
                         targetProject="src/main/resources"/>
        <javaClientGenerator type="XMLMAPPER" 
                             targetPackage="com.example.mapper" 
                             targetProject="src/main/java"/>
    </context>
</generatorConfiguration>
配置生成器配置文件

Mybatis Generator的配置文件generatorConfig.xml是核心配置文件,用于定义生成代码的规则和参数。以下是配置文件的主要部分:

  1. 定义<context>标签

<context>标签定义了生成器的运行环境,可以通过id属性指定不同的上下文环境。每个<context>标签可以包含多种配置项,如数据库连接信息、生成代码的目标路径等。

<generatorConfiguration>
    <context id="default" targetRuntime="MyBatis3Simple">
        <!-- 其他配置项 -->
    </context>
</generatorConfiguration>
  1. 定义<jdbcConnection>标签

该标签用于配置数据库连接信息,包括驱动类、连接URL、用户名和密码。

<jdbcConnection driverClass="com.mysql.jdbc.Driver" 
                connectionURL="jdbc:mysql://localhost:3306/mydatabase" 
                userId="root" 
                password="password"/>
  1. 定义<javaModelGenerator>标签

该标签用于指定生成的Java实体类的位置和包名。

<javaModelGenerator targetPackage="com.example.model" 
                     targetProject="src/main/java"/>
  1. 定义<sqlMapGenerator>标签

该标签指定了生成的Mybatis映射文件的位置和包名。

<sqlMapGenerator targetPackage="com.example.mapper" 
                 targetProject="src/main/resources"/>
  1. 定义<javaClientGenerator>标签

该标签指定了生成的DAO接口和实现类的位置和包名。

<javaClientGenerator type="XMLMAPPER" 
                     targetPackage="com.example.mapper" 
                     targetProject="src/main/java"/>
生成代码的基本步骤

配置生成器配置文件

完成以上配置后,可以通过Maven或命令行执行代码生成命令。

  1. 使用Maven命令生成代码
mvn mybatis-generator:generate
  1. 使用命令行工具生成代码

需要下载Mybatis Generator的CLI工具,并通过命令行执行生成代码的命令。

java -jar mybatis-generator-core-1.3.7.jar -configfile generatorConfig.xml -overwrite
Mybatis官方生成器配置详解

配置数据库连接信息

在配置文件中,可以通过<jdbcConnection>标签配置数据库连接信息。以下是配置示例:

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

配置生成代码的输出目录

可以使用<javaModelGenerator><sqlMapGenerator><javaClientGenerator>标签分别配置生成Java实体类、Mybatis映射文件和DAO接口的位置。

<javaModelGenerator targetPackage="com.example.model" 
                     targetProject="src/main/java"/>
<sqlMapGenerator targetPackage="com.example.mapper" 
                 targetProject="src/main/resources"/>
<javaClientGenerator type="XMLMAPPER" 
                     targetPackage="com.example.mapper" 
                     targetProject="src/main/java"/>

配置生成代码的模板

生成器支持通过配置模板来自定义生成代码的格式。例如,可以使用<property>标签在<context>标签中配置生成器的行为。

<commentGenerator>
    <property name="suppressAllComments" value="true"/>
</commentGenerator>
常见问题及解决方法

生成器无法连接数据库

如果生成器无法连接数据库,通常是因为数据库连接信息配置错误。请检查<jdbcConnection>标签中的driverClassconnectionURLuserIdpassword是否正确。

例如,如果数据库连接信息配置为:

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

请确保:

  1. 数据库已经启动并运行在localhost:3306
  2. 数据库用户名和密码正确。
  3. 数据库驱动类路径正确。

生成的代码不符合预期

如果生成的代码不符合预期,可以检查配置文件中的配置项,确保配置正确。

例如,如果希望生成的Java实体类包含注释,可以修改<commentGenerator>标签的配置:

<commentGenerator>
    <property name="suppressAllComments" value="false"/>
</commentGenerator>
使用示例与实践

创建示例数据库

首先,创建一个示例数据库,并在数据库中创建一个简单的表。

  1. 创建数据库
CREATE DATABASE mydatabase;
USE mydatabase;
  1. 创建示例表
CREATE TABLE `user` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(255) DEFAULT NULL,
  `age` INT(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

生成示例代码

在配置文件generatorConfig.xml中,指定生成代码的目标路径和包名。

<generatorConfiguration>
    <context id="default" targetRuntime="MyBatis3Simple">
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" 
                        connectionURL="jdbc:mysql://localhost:3306/mydatabase" 
                        userId="root" 
                        password="password"/>
        <javaModelGenerator targetPackage="com.example.model" 
                            targetProject="src/main/java"/>
        <sqlMapGenerator targetPackage="com.example.mapper" 
                         targetProject="src/main/resources"/>
        <javaClientGenerator type="XMLMAPPER" 
                             targetPackage="com.example.mapper" 
                             targetProject="src/main/java"/>
    </context>
</generatorConfiguration>

使用Maven命令生成代码:

mvn mybatis-generator:generate

生成的代码会根据配置文件中的设置输出到指定的路径。

运行示例项目

  1. 创建Java项目

使用IntelliJ IDEA或Eclipse创建一个新的Java项目,并将生成的代码复制到项目中。

  1. 配置数据库连接信息

在项目中配置数据库连接信息,确保数据库连接成功。

private DataSource getDataSource() {
    DataSource dataSource = new DataSource();
    dataSource.setDriverClassName("com.mysql.jdbc.Driver");
    dataSource.setUrl("jdbc:mysql://localhost:3306/mydatabase");
    dataSource.setUsername("root");
    dataSource.setPassword("password");
    return dataSource;
}
  1. 编写测试代码

编写测试代码来验证生成的代码是否正常工作。

import com.example.mapper.UserMapper;
import com.example.model.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.InputStream;

public class TestMybatisGenerator {
    public static void main(String[] args) throws Exception {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        try (SqlSession session = sqlSessionFactory.openSession()) {
            UserMapper mapper = session.getMapper(UserMapper.class);
            User user = mapper.getUserById(1);
            System.out.println(user);
        }
    }
}
  1. 运行测试代码

运行测试代码,验证生成的代码是否正常工作。

mvn test
点击查看更多内容
TA 点赞

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

评论

作者其他优质文章

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

100积分直接送

付费专栏免费学

大额优惠券免费领

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

举报

0/150
提交
取消