用IDEA创建一个Mybatis项目,自动生成映射文件

本文介绍如何在IDEA中使用Maven和MyBatis Generator插件快速搭建MyBatis项目框架,并自动生成核心配置文件、Mapper映射文件、实体类及DAO接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何用IDEA创建一个mybatis项目框架,用mybatis插件自动生成核心配置文件、mapper映射文件、实体类和接口。


1、首先打开IDEA,选择新建项目,如下选择maven-quickstart,只需要提供maven管理包,所以选择quickstart即可。

2、在pom.xml导入依赖包和导入第三方插件mybatis.generator

<dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.2</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.15</version>
    </dependency>

  <plugin>
      <groupId>org.mybatis.generator</groupId>
      <artifactId>mybatis-generator-maven-plugin</artifactId>
      <version>1.3.7</version>
      <configuration>
        <verbose>true</verbose>
        <overwrite>true</overwrite>
      </configuration>
    </plugin>

3、 创建资源包,用于链接数据库(也可以不用,直接在配置文件中写,规范起见创建资源包)放于resources资源文件夹下。

resources/db.properties

内容如下:

jdbc.driverLocation=C:\\Users\\DELL\\.m2\\repository\\mysql\\mysql-connector-java\\8.0.15\\mysql-connector-java-8.0.15.jar
jdbc.driverClass=com.mysql.cj.jdbc.Driver
jdbc.connectionURL=jdbc:mysql://localhost:3306/liuyan?characterEncoding=UTF-8&serverTimezone=UTC
jdbc.userId=user
jdbc.password=***

这里需要注意,第三行url中的/3306后面要改成自己数据库的schema,

第一行driverlocation要根据自己的电脑修改,一般是改Users后面的名称。

4、在资源目录resources下,创建生成器generator的配置文件generatorConfig.xml(名字不能错),用于自动生成mybatis配置文件、DAO接口等。

代码如下,各项标签作用都有备注,一般不用大的改动,需要改动的地方在最后<table>标签,用于指明需要导入的表和对应的实体类名。

<?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>
    <!--导入属性配置-->
    <properties resource="db.properties"></properties>
    <!--指定特定数据库的jdbc驱动jar包的位置-->
    <classPathEntry location="${jdbc.driverLocation}"/>
    <!--classPathEntry  location="/Users/apple/.m2/repository/mysql/mysql-connector-java/8.0.15/mysql-connector-java-8.0.15.jar"/ -->

    <context id="default" targetRuntime="MyBatis3">
        <!-- optional,旨在创建class时,对注释进行控制 -->
        <!--suppressDate是去掉生成日期那行注释,suppressAllComments是去掉所有的注解;另外,commentGenerator还可以配置一个type,设置自己的注解生成器,默认使用的是org.mybatis.generator.internal.DefaultCommentGenerator;-->
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>

        <!--jdbc的数据库连接 -->
        <jdbcConnection
                driverClass="${jdbc.driverClass}"
                connectionURL="${jdbc.connectionURL}"
                userId="${jdbc.userId}"
                password="${jdbc.password}">
        </jdbcConnection>

        <!-- Model模型生成器,用来生成含有主键key的类,记录类以及查询Example类,属性targetPackage 指定生成的model生成所在的包名
             属性targetProject 指定在该工程下包所在的路径-->
        <javaModelGenerator targetPackage="com.dhu.pojo"
                            targetProject="src/main/java">
            <!-- 是否允许子包,即targetPackage.schemaName.tableName -->
            <property name="enableSubPackages" value="false"/>
            <!-- 是否对model添加 构造函数 -->
            <property name="constructorBased" value="true"/>
            <!-- 是否对类CHAR类型的列的数据进行trim操作 -->
            <property name="trimStrings" value="true"/>
            <!-- 建立的Model对象是否 不可改变,即生成的Model对象是否不会有 setter方法,只有构造方法 -->
            <property name="immutable" value="false"/>
        </javaModelGenerator>

        <!--Mapper映射文件生成所在的目录 为每一个数据库的表生成对应的SqlMap文件 -->
        <sqlMapGenerator targetPackage="main.resources.mapper"
                         targetProject="src">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>


        <javaClientGenerator targetPackage="com.dao"
                             targetProject="src/main/java"    type="XMLMAPPER">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>

        <!--tableName:指定了表名 domainObjectName:指定了实体类的名称 -->
        <table tableName="usertable" domainObjectName="User"
               enableCountByExample="false"
               enableUpdateByExample="false"
               enableDeleteByExample="false"
               enableSelectByExample="false"
               selectByExampleQueryId="false">
        </table>
    </context>
</generatorConfiguration>

5、 接下来就是运行插件了,IDEA中配置一个“Run”,使用maven运行mybatis-generator-maven-plugin插件。创建步骤如下:


 


 

 命令:mybatis-generator:generate -e

其他不用改,输入命令行确认即可。


RUN运行

 运行完成后的目录如下:

 

到此已经完成了自动生成功能,已经完成了mapper接口、Entity实体类、mapper映射文件的生成。

如果还想用于生成其他表的映射,在generatorConfig.xml中修改<table>内容,再次RUN运行即可。

### 创建带有 MyBatis 的 Spring Boot 项目自动生成 DAO 层和 REST 控制器 #### 使用 IntelliJ IDEA 初始化 Spring Boot 项目 为了在 IntelliJ IDEA创建一个包含 MyBatis 支持的 Spring Boot 项目,需遵循特定配置流程。首先,在启动新项目时选择Spring Initializr作为构建工具选项之一,并确保选择了 Maven 或 Gradle 构建支持[^1]。 接着,在依赖项列表中勾选 `Spring Web` 和 `MyBatis Framework` 来集成必要的功能模块。这一步骤会自动向项目的 POM 文件添加相应的依赖声明。 对于开发环境优化,可以考虑加入如下所示的 devtools 依赖来增强热部署和其他便利特性: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> ``` #### 配置数据源与 MyBatis 映射文件 完成基础设置之后,应当定义数据库连接属性以及指定实体类映射规则。通常情况下,这些信息会被放置于 application.properties (或 .yml) 文件内;而 SQL 查询语句则保存成 XML 形式的 Mapper 资源文件。 例如,application.yml 可能看起来像这样: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC username: root password: secret mybatis: mapper-locations: classpath:mapper/*.xml ``` 同时还需要编写对应的 Java 接口用于描述持久化操作方法签名,即所谓的 DAO Layer。此类接口应被标注为 @Mapper 并通过实现 BaseMapper<T> 接口获得基本 CRUD 功能的支持。 #### 实现自动化代码生成功能 针对 DAO 和 Controller 类型组件的快速搭建需求,IntelliJ 提供了多种插件辅助手段。其中较为流行的方案包括但不限于 Lombok 插件简化 getter/setter 方法书写工作量,还有诸如 JPA Buddy 这样的专用扩展能够帮助生成基于模板模式的服务端 API 结构体。 然而值得注意的是,虽然存在一些第三方库声称具备全自动化的 CRUD 生成功能,但在实际应用过程中往往难以完全满足复杂业务逻辑的要求。因此建议开发者们更多关注框架本身所提供的灵活机制而非单纯追求一键式解决方案。 至于前端技术栈的选择方面,则可以根据个人喜好或是团队标准决定采用 Vue.js 等现代 JavaScript 框架来进行单页面应用程序(SPA)的设计与开发[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值