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

掌握Mybatis官方生成器:简化代码生成的高效工具

标签:
杂七杂八

Mybatis官方生成器,即Mybatis Generator,是自动化开发利器,能够根据数据库表结构自动生成Java代码,包括实体类、DAO接口和SQL映射文件,显著提升开发效率并减少人工错误,尤其适用于大型项目中数据持久化操作的快速实现。

概述

Mybatis是一个强大的、基于SQL映射的持久层框架。它能够将SQL语句与对象模型进行绑定,从而实现数据的持久化操作。Mybatis官方生成器,即Mybatis Generator,是Mybatis提供的一款用于自动生成Java代码的工具,它能够根据数据库表结构自动生成对应的实体类、DAO接口和SQL映射文件。这种自动化过程大大节省了开发人员的编码工作,提升了开发效率,减少了人工错误,尤其在大型项目中,Mybatis Generator的价值更为显著。

安装与配置

要开始使用Mybatis Generator,首先需要确保你的开发环境中已经安装了Mybatis。可以通过以下命令获取Mybatis源码:

git clone https://github.com/mybatis/mybatis.git

接着,根据你的项目环境(如IntelliJ IDEA、Eclipse、Maven、Gradle等),将Mybatis的依赖引入到项目中。以Maven项目为例,添加如下依赖:

<dependencies>
    <!-- Mybatis核心依赖 -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.7</version>
    </dependency>
    <!-- Mybatis Generator依赖 -->
    <dependency>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-core</artifactId>
        <version>1.4.1</version>
    </dependency>
</dependencies>

配置Mybatis Generator的maven插件,添加到pom.xml文件:

<build>
    <plugins>
        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.3.7</version>
            <configuration>
                <!-- 配置文件路径 -->
                <configurationFile>src/main/resources/mybatis-generator-config.xml</configurationFile>
                <overwrite>true</overwrite>
            </configuration>
            <dependencies>
                <!-- Mybatis Generator所需依赖 -->
                <dependency>
                    <groupId>org.mybatis.generator</groupId>
                    <artifactId>mybatis-generator-core</artifactId>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

创建mybatis-generator-config.xml配置文件,其中包含数据库连接信息、表名、生成的实体类、DAO接口、SQL映射文件等详细信息:

<?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>
    <context id="UserContext" targetRuntime="MyBatis3">
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/mydb" userId="root" password="pass">
            <jdbcConnection />
        </jdbcConnection>
        <javaTypeResolver>fully_qualified</javaTypeResolver>
        <!-- 生成的实体类信息 -->
        <property name="enableCountByExample" value="false" />
        <property name="enableUpdateByExample" value="false" />
        <property name="enableDeleteByExample" value="false" />
        <sqlMapGenerator type="XMLMAPPER" />
        <javaModelGenerator targetPackage="com.example.model" targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <sqlSourceGenerator type="XML" />
    </context>
</generatorConfiguration>
基础使用

创建映射文件

在Mybatis Generator的帮助下,首先需要创建对应的SQL映射文件。例如,对于一个表User,对应的映射文件UserMapper.xml可以这样编写:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">
    <!-- 查询所有用户 -->
    <select id="selectByExample" resultType="com.example.model.User">
        SELECT * FROM user
    </select>
    <!-- 插入用户 -->
    <insert id="insert" parameterType="com.example.model.User">
        INSERT INTO user(name, email) VALUES(#{name}, #{email})
    </insert>
    <!-- 更新用户 -->
    <update id="update" parameterType="com.example.model.User">
        UPDATE user SET name=#{name}, email=#{email} WHERE id=#{id}
    </update>
    <!-- 删除用户 -->
    <delete id="delete" parameterType="int">
        DELETE FROM user WHERE id=#{id}
    </delete>
</mapper>

实体类与SQL映射文件的生成

将上述配置文件与代码放置在适当的位置,并通过Maven构建或执行Mybatis Generator插件,代码和映射文件将被生成到指定目录。

mvn mybatis-generator:generate
代码生成实践

假设我们有一个需求,需要快速开发一个用户管理系统的增删改查功能。通过Mybatis Generator,我们可以直接从数据库表生成所需的实体类、DAO接口以及SQL映射文件。

  1. 定义数据库表结构:创建一个User表,包含idnameemail等字段。

  2. 配置生成器:在mybatis-generator-config.xml中配置表名、生成的实体类、DAO接口等信息。

  3. 执行代码生成:通过Maven命令执行代码生成任务。
mvn mybatis-generator:generate
  1. 编写业务逻辑:在业务层使用生成的UserMapper接口和对应的实体类实现增删改查功能。
高级特性与技巧

Mybatis Generator支持多种扩展功能,如分页、复杂查询生成等。

分页功能

通过配置limit参数,可以生成分页查询的SQL语句。

自定义生成

使用插件机制(通过配置plugin属性),可以自定义生成某些特定的代码行为,如生成MyBatis 3的XML文件而不仅仅是XML映射文件。

案例分析

下面,我们将通过一个简单的示例来演示如何通过Mybatis Generator快速开发一个用户管理系统的实际情况。

假设我们有一个简单的User表,需要实现基本的CRUD操作。以下步骤将演示如何应用Mybatis Generator来自动完成这些任务。

准备数据库和表结构

在MySQL数据库中,创建一个user_table表:

CREATE TABLE `user_table` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
);

配置Mybatis Generator

mybatis-generator-config.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>
    <context id="UserTableContext" targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="trim" value="true" />
        </commentGenerator>
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/mydb" userId="root" password="pass" />
        <javaModelGenerator targetPackage="com.example.model" targetProject="src/main/java" />
        <sqlMapGenerator targetPackage="com.example.mapper" />
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.mapper" />
    </context>
</generatorConfiguration>

执行代码生成

运行Maven命令生成代码:

mvn mybatis-generator:generate

实现业务逻辑

在业务层,使用生成的UserMapper接口和实体类来实现CRUD操作:

import java.util.List;

public interface UserMapper {
    List<User> selectAllUsers();
    User selectUserById(int id);
    int insertUser(User user);
    int updateUser(User user);
    int deleteUser(int id);
}
import java.util.Date;
import java.util.List;

public class User {
    private int id;
    private String name;
    private String email;
    private Date createTime;
    // getters and setters
}

通过上述步骤,我们能够快速地使用Mybatis Generator为业务系统生成所需的代码框架,极大地提高了开发效率并保证了代码质量。

点击查看更多内容
TA 点赞

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

评论

作者其他优质文章

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

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消