使用Mybatis-Generator自动生成Dao、Model、Mapping文件实战

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:Mybatis-Generator是一款自动生成Mybatis代码的工具,可生成DAO、Model和Mapper XML文件,提高开发效率。本课程设计项目经过测试,旨在帮助学生掌握Mybatis-Generator的使用,包括配置XML文件、生成代码、使用自定义插件等。学生将通过实践任务,提升在Mybatis框架中开发应用的能力,为未来在实际项目中的应用打下坚实基础。 使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件(转)

1. Mybatis-Generator简介

Mybatis-Generator是一个代码生成工具,可以根据数据库表结构自动生成Java代码,包括Model类、Mapper接口和XML映射文件。它极大地简化了持久层代码的开发,提高了开发效率。

2. XML配置文件配置

2.1 基本配置项

2.1.1 targetRuntime

| 参数 | 说明 | 默认值 | |---|---|---| | targetRuntime | 生成代码的目标运行时 | Mybatis3 |

2.1.2 targetPackage

| 参数 | 说明 | 默认值 | |---|---|---| | targetPackage | 生成的代码包名 | 未指定 |

2.1.3 typeAliasesPackage

| 参数 | 说明 | 默认值 | |---|---|---| | typeAliasesPackage | 生成的别名包名 | 未指定 |

2.2 数据库连接信息配置

2.2.1 JDBC driver

| 参数 | 说明 | 默认值 | |---|---|---| | JDBC driver | 数据库连接驱动 | 未指定 |

2.2.2 JDBC URL

| 参数 | 说明 | 默认值 | |---|---|---| | JDBC URL | 数据库连接URL | 未指定 |

2.2.3 JDBC 用户名

| 参数 | 说明 | 默认值 | |---|---|---| | JDBC 用户名 | 数据库连接用户名 | 未指定 |

2.2.4 JDBC 密码

| 参数 | 说明 | 默认值 | |---|---|---| | JDBC 密码 | 数据库连接密码 | 未指定 |

2.3 生成目标配置

2.3.1 modelType

| 参数 | 说明 | 默认值 | |---|---|---| | modelType | 生成的Model类类型 | flat |

2.3.2 mapperType

| 参数 | 说明 | 默认值 | |---|---|---| | mapperType | 生成的Mapper接口类型 | ANNOTATEDMAPPER |

2.3.3 sqlMapType

| 参数 | 说明 | 默认值 | |---|---|---| | sqlMapType | 生成的SQL映射文件类型 | XMLMAPPER |

2.4 表选择与配置

2.4.1 table

| 参数 | 说明 | 默认值 | |---|---|---| | table | 要生成的表的名称 | 未指定 |

2.4.2 tableName

| 参数 | 说明 | 默认值 | |---|---|---| | tableName | 表名 | 未指定 |

2.4.3 domainObjectName

| 参数 | 说明 | 默认值 | |---|---|---| | domainObjectName | 生成的Model类名称 | 根据tableName自动生成 |

2.5 自定义插件编写

2.5.1 插件原理

Mybatis-Generator插件是一种扩展机制,允许用户自定义代码生成过程。插件可以拦截代码生成过程中的特定事件,并根据需要修改或扩展生成的代码。

2.5.2 插件编写步骤

  1. 编写插件类,实现 org.mybatis.generator.api.Plugin 接口。
  2. 在插件类中重写 processConfiguration() 方法,用于处理XML配置文件中的配置信息。
  3. 在插件类中重写 generate() 方法,用于生成代码。
  4. generate() 方法中,根据需要修改或扩展生成的代码。
  5. 在XML配置文件中配置插件。

3. Mybatis-Generator代码生成实战

3.1 准备工作

3.1.1 导入依赖

在项目中导入Mybatis-Generator依赖:

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-generator</artifactId>
    <version>1.3.7</version>
</dependency>

3.1.2 创建XML配置文件

创建名为 generatorConfig.xml 的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>
    <!-- 数据库连接信息 -->
    <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                    connectionString="jdbc:mysql://localhost:3306/test"
                    userId="root"
                    password="123456"/>

    <!-- 生成目标配置 -->
    <javaModelGenerator targetPackage="com.example.demo.model"
                       targetProject="src/main/java"/>
    <sqlMapGenerator targetPackage="com.example.demo.mapper"
                     targetProject="src/main/resources"/>
    <javaClientGenerator targetPackage="com.example.demo.mapper"
                        targetProject="src/main/java"
                        type="XMLMAPPER"/>

    <!-- 表选择与配置 -->
    <table tableName="user"/>
</generatorConfiguration>

3.2 代码生成

3.2.1 命令行生成

使用命令行执行以下命令生成代码:

mvn mybatis-generator:generate

3.2.2 Maven插件生成

在pom.xml文件中配置Maven插件生成代码:

<build>
    <plugins>
        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.3.7</version>
            <executions>
                <execution>
                    <id>generate-sources</id>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
                <verbose>true</verbose>
                <overwrite>true</overwrite>
            </configuration>
        </plugin>
    </plugins>
</build>

执行 mvn clean install 命令生成代码。

4. Model类设计与实现

4.1 Model类结构

4.1.1 属性

Model类中的属性通常对应于数据库表中的列,用于存储实体对象的数据。属性的类型应与数据库列的数据类型相匹配,以确保数据的准确性和完整性。例如:

public class User {

    private Integer id;
    private String username;
    private String password;
    private Date createTime;
    private Date updateTime;
}

4.1.2 构造方法

Model类通常提供无参构造方法和带参构造方法。无参构造方法用于创建空对象,而带参构造方法用于根据指定的参数值创建对象。例如:

public User() {}

public User(Integer id, String username, String password, Date createTime, Date updateTime) {
    this.id = id;
    this.username = username;
    this.password = password;
    this.createTime = createTime;
    this.updateTime = updateTime;
}

4.1.3 Getter和Setter方法

Getter和Setter方法用于获取和设置Model类中的属性值。这些方法通常遵循JavaBean规范,以"get"和"set"开头,后跟属性名称的首字母大写。例如:

public Integer getId() {
    return id;
}

public void setId(Integer id) {
    this.id = id;
}

4.2 Model类设计原则

4.2.1 可变性原则

Model类应该具有可变性,即允许在需要时修改其属性值。这可以通过提供Setter方法来实现。可变性原则使Model类能够适应不同的业务场景,并根据需要进行修改。

4.2.2 职责单一原则

Model类应遵循职责单一原则,即只负责存储和管理数据,而不包含任何业务逻辑或其他功能。这有助于保持Model类的简洁性和可维护性。

4.2.3 可扩展性原则

Model类应具有可扩展性,以支持未来的扩展和修改。这可以通过使用接口或抽象类来定义Model类的公共行为,并允许通过实现或继承来扩展Model类。

5. Mapper接口设计与实现

5.1 Mapper接口结构

Mapper接口是MyBatis中用于定义数据库操作的方法,它是一个接口,其方法名对应着SQL语句的ID,方法参数对应着SQL语句的参数,方法返回值对应着SQL语句的查询结果。

5.1.1 方法签名

Mapper接口方法的签名遵循以下格式:

public <返回类型> <方法名>(<参数类型> <参数名>);

其中:

  • <返回类型> :方法的返回值类型,可以是基本类型、包装类型、POJO类或集合类型。
  • <方法名> :方法的名称,对应着SQL语句的ID。
  • <参数类型> :方法的参数类型,可以是基本类型、包装类型、POJO类或Map类型。
  • <参数名> :方法的参数名称。
5.1.2 注解使用

Mapper接口的方法上可以使用MyBatis提供的注解来指定SQL语句的ID、参数映射和结果映射等信息。常用的注解包括:

  • @Select :指定SQL语句的ID,用于查询操作。
  • @Insert :指定SQL语句的ID,用于插入操作。
  • @Update :指定SQL语句的ID,用于更新操作。
  • @Delete :指定SQL语句的ID,用于删除操作。
  • @Param :指定方法参数与SQL语句参数的映射关系。
  • @Results :指定查询结果与POJO类的映射关系。

5.2 Mapper接口设计原则

在设计Mapper接口时,应遵循以下原则:

5.2.1 接口隔离原则

接口隔离原则要求将不同的功能模块分离到不同的接口中,避免一个接口过于庞大。例如,可以将查询操作和更新操作分别定义在不同的接口中。

5.2.2 命名规范原则

方法名应遵循驼峰命名法,并与SQL语句的ID保持一致。例如,查询用户的方法可以命名为 getUserById ,对应的SQL语句ID为 getUserById

5.2.3 异常处理原则

Mapper接口的方法应声明抛出 MyBatisSystemException 异常,该异常封装了MyBatis在执行SQL语句时发生的异常。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:Mybatis-Generator是一款自动生成Mybatis代码的工具,可生成DAO、Model和Mapper XML文件,提高开发效率。本课程设计项目经过测试,旨在帮助学生掌握Mybatis-Generator的使用,包括配置XML文件、生成代码、使用自定义插件等。学生将通过实践任务,提升在Mybatis框架中开发应用的能力,为未来在实际项目中的应用打下坚实基础。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值