spring-boot整合通用Mapper

本文详细介绍了如何在Spring Boot项目中集成tk.mybatis的mapper-spring-boot-starter,包括添加依赖、配置MapperScan、mybatis-generator-maven-plugin以及自定义generatorConfig.xml。重点讲解了如何通过generatorConfig.xml生成特定数据库表的Java代码,涉及配置参数和插件设置。

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

1.https://github.com/abel533
2.加依赖

 <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.1.5</version>
 </dependency>

3.启动类上加注解

//扫描哪些包里的接口
@MapperScan("com.itmuch")
@SpringBootApplication
public class UserCenterApplication {

    public static void main(String[] args) {
        SpringApplication.run(UserCenterApplication.class, args);
    }

}

4.加plugin

          <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.6</version>
                <configuration>
                    <configurationFile>
                        ${basedir}/src/main/resources/generator/generatorConfig.xml
                    </configurationFile>
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>8.0.16</version>
                    </dependency>
                    <dependency>
                        <groupId>tk.mybatis</groupId>
                        <artifactId>mapper</artifactId>
                        <version>4.1.5</version>
                    </dependency>
                </dependencies>
            </plugin>

5.修改版本(根据mysql的版本修改,mysql是5的话就改5)

mysql
mysql-connector-java
8.0.16

6.创建generatorConfig.xml
根据步骤4中
${basedir}/src/main/resources/generator/generatorConfig.xml
${basedir}:内置目录,即项目根目录。
在resources建立目录generator,并创建文件generatorConfig.xml
内容:`

<context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
    <property name="beginningDelimiter" value="`"/>
    <property name="endingDelimiter" value="`"/>

    <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
        <property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
        <property name="caseSensitive" value="true"/>
        <!--整合lombok-->
        <property name="lombok" value="Getter,Setter,ToString"/>
    </plugin>

    <jdbcConnection driverClass="${jdbc.driverClass}"
                    connectionURL="${jdbc.url}"
                    userId="${jdbc.user}"
                    password="${jdbc.password}">
    </jdbcConnection>

    <!--实体-->
    <javaModelGenerator targetPackage="com.itmuch.usercenter.domain.entity.${moduleName}"
                        targetProject="src/main/java"/>

    <!--mapper.xml-->
    <sqlMapGenerator targetPackage="com.itmuch.usercenter.dao.${moduleName}"
                     targetProject="src/main/resources"/>

    <!--mapper接口-->
    <javaClientGenerator targetPackage="com.itmuch.usercenter.dao.${moduleName}"
                         targetProject="src/main/java"
                         type="XMLMAPPER"/>

    <!--为哪张表生成代码-->
    <table tableName="${tableName}">
        <generatedKey column="id" sqlStatement="JDBC"/>
    </table>
</context>

`
7.创建config.properties
步骤6中有许多占位符 如${jdbc.driverClass},这些值从哪里来?

generatorConfig.xml的

<properties resource="generator/config.properties"/>

中的config.properties来的。

config.properties 内容:

jdbc.driverClass=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/user_center?nullCatalogMeansCurrent=TRUE&serverTimezone=UTC
jdbc.user=gxf
jdbc.password=1111.aaa

moduleName=user
tableName=user

配置文件的参数都是给generatorConfig.xml提供配置数据的,
其中
nullCatalogMeansCurrent=true 这个参数可以避免与mysql内置的表重名产生歧义。
tableName:要生成哪张表的代码
moduleName:表对应的模块名字

8.生成代码
双击
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值