zoukankan      html  css  js  c++  java
  • springboot集成mybatis自动生成代码

    需求: springboot项目,通过mybatis自动根据数据库生成对应的实体/mapper

    开发工具: idea

    方法:

    一、创建一个springboot对象

     

     

     

     

     二、配置pom 

     

      我的pom如下:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     3          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
     4     <modelVersion>4.0.0</modelVersion>
     5     <parent>
     6         <groupId>org.springframework.boot</groupId>
     7         <artifactId>spring-boot-starter-parent</artifactId>
     8         <version>2.4.3</version>
     9         <relativePath/> <!-- lookup parent from repository -->
    10     </parent>
    11     <groupId>com.example</groupId>
    12     <artifactId>mybatisgen</artifactId>
    13     <version>0.0.1-SNAPSHOT</version>
    14     <name>mybatisgen</name>
    15     <description>Demo project for Spring Boot</description>
    16     <properties>
    17         <java.version>1.8</java.version>
    18     </properties>
    19     <dependencies>
    20         <dependency>
    21             <groupId>org.springframework.boot</groupId>
    22             <artifactId>spring-boot-starter-data-jdbc</artifactId>
    23         </dependency>
    24         <dependency>
    25             <groupId>org.springframework.boot</groupId>
    26             <artifactId>spring-boot-starter-web</artifactId>
    27         </dependency>
    28         <dependency>
    29             <groupId>org.mybatis.spring.boot</groupId>
    30             <artifactId>mybatis-spring-boot-starter</artifactId>
    31             <version>2.1.4</version>
    32         </dependency>
    33 
    34         <dependency>
    35             <groupId>mysql</groupId>
    36             <artifactId>mysql-connector-java</artifactId>
    37             <scope>runtime</scope>
    38         </dependency>
    39         <dependency>
    40             <groupId>org.springframework.boot</groupId>
    41             <artifactId>spring-boot-starter-test</artifactId>
    42             <scope>test</scope>
    43         </dependency>
    44 
    45         <dependency>
    46             <groupId>org.mybatis.generator</groupId>
    47             <artifactId>mybatis-generator-core</artifactId>
    48             <version>1.3.6</version>
    49         </dependency>
    50 
    51         <dependency>
    52             <groupId>com.alibaba</groupId>
    53             <artifactId>druid-spring-boot-starter</artifactId>
    54             <version>1.1.9</version>
    55         </dependency>
    56     </dependencies>
    57 
    58     <build>
    59         <plugins>
    60             <plugin>
    61                 <groupId>org.springframework.boot</groupId>
    62                 <artifactId>spring-boot-maven-plugin</artifactId>
    63             </plugin>
    64             <plugin>
    65                 <groupId>org.mybatis.generator</groupId>
    66                 <artifactId>mybatis-generator-maven-plugin</artifactId>
    67                 <version>1.3.2</version>
    68                 <configuration>
    69                     <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
    70                     <overwrite>true</overwrite>
    71                     <verbose>true</verbose>
    72                 </configuration>
    73             </plugin>
    74             <plugin>
    75                 <groupId>org.apache.maven.plugins</groupId>
    76                 <artifactId>maven-resources-plugin</artifactId>
    77                 <version>2.4.3</version>
    78                 <configuration>
    79                 </configuration>
    80             </plugin>
    81         </plugins>
    82         <resources>
    83             <resource>
    84                 <directory>${basedir}/src/main/resources</directory>
    85                 <excludes>
    86                     <exclude>lib/*.jar</exclude>
    87                 </excludes>
    88             </resource>
    89         </resources>
    90     </build>
    91 
    92 </project>

    三、下载依赖的资源

    四、配置application.properties文件

     1 #=================mybatis相关配置===================#
     2 mybatis.jdbc.jar=C:/Users/Administrator/AppData/Roaming/JetBrains/IntelliJIdea2020.1/jdbc-drivers/MySQL ConnectorJ/8.0.21/mysql-connector-java-8.0.21.jar
     3 mybatis.javaModelGenerator.targetPackage=com.example.mybatisgen.entity
     4 mybatis.generator.targetProject=src/main/java
     5 mybatis.sqlMapGenerator.targetPackage=com.example.mybatisgen.mapper
     6 mybatis.javaClientGenerator.targetPackage=com.example.mybatisgen.mapper
     7 #mybatis扫描接口对应的xml文件
     8 mybatis.type-aliases-package=com.example.mybatisgen.entity
     9 mybatis.mapper-locations=classpath*:mapper/*.xml
    10 
    11 #=================mysql相关配置===================#
    12 spring.datasource.name=virtual_control_db
    13 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
    14 #druid相关配置
    15 # 监控统计拦截的filters
    16 spring.datasource.druid.filters=stat
    17 spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
    18 spring.datasource.druid.url=jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
    19 spring.datasource.druid.username=root
    20 spring.datasource.druid.password=root

    根据自己的项目情况和数据库情况进行更改

    五、配置自动生成的xml

    在resources下创建文件generatorConfig.xml

     文件内容直接粘贴我的就行,因为配置基本都是变量,从application.properties中读取的,基本上不需要更改。不过需要根据自己数据库情况改动下<!--生成全部的表-->注解处的配置。

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE generatorConfiguration
     3         PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
     4         "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
     5 <!-- 配置 tableName,使用 Run As Maven build 生成 dao 层 -->
     6 <generatorConfiguration>
     7     <!-- 配置文件路径 -->
     8     <properties resource="application.properties"/>
     9     <!--数据库驱动包路径 -->
    10     <classPathEntry location="${mybatis.jdbc.jar}"/>
    11 
    12     <!-- flat表示为每一张表只生成一个实体类。这个实体类包含表中的所有字段-->
    13     <context id="virtual-control-sql" defaultModelType="flat">
    14         <!-- 生成的Java文件的编码 -->
    15         <property name="javaFileEncoding" value="UTF-8"/>
    16         <!-- 格式化java代码 -->
    17         <property name="javaFormatter"
    18                   value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
    19         <!-- 格式化XML代码 -->
    20         <property name="xmlFormatter"
    21                   value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
    22         <!-- 抑制警告 -->
    23         <property name="suppressTypeWarnings" value="true"/>
    24         <!-- generate entity时,生成serialVersionUID -->
    25         <plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>
    26 
    27         <!--关闭注释 -->
    28         <commentGenerator>
    29             <property name="suppressAllComments" value="true"/><!-- 是否取消注释 -->
    30             <property name="suppressDate" value="true"/> <!-- 是否生成注释代时间戳 -->
    31         </commentGenerator>
    32 
    33         <!--数据库连接信息 -->
    34         <jdbcConnection driverClass="${spring.datasource.druid.driver-class-name}"
    35                         connectionURL="${spring.datasource.druid.url}"
    36                         userId="${spring.datasource.druid.username}"
    37                         password="${spring.datasource.druid.password}">
    38         </jdbcConnection>
    39 
    40 
    41         <!--生成的model 包路径 -->
    42         <javaModelGenerator targetPackage="${mybatis.javaModelGenerator.targetPackage}"
    43                             targetProject="${mybatis.generator.targetProject}">
    44             <property name="trimStrings" value="true"/>
    45         </javaModelGenerator>
    46 
    47         <!--生成xml mapper文件 路径 -->
    48         <sqlMapGenerator targetPackage="${mybatis.sqlMapGenerator.targetPackage}"
    49                          targetProject="${mybatis.generator.targetProject}">
    50             <property name="enableSubPackages" value="true"/>
    51         </sqlMapGenerator>
    52 
    53         <!-- 生成的Dao接口 的包路径 -->
    54         <javaClientGenerator type="XMLMAPPER"
    55                              targetPackage="${mybatis.javaClientGenerator.targetPackage}"
    56                              targetProject="${mybatis.generator.targetProject}">
    57         </javaClientGenerator>
    58 
    59         <!--生成全部的表-->
    60         <table tableName="user">
    61             <generatedKey column="id" sqlStatement="Mysql"/>
    62         </table>
    63     </context>
    64 </generatorConfiguration>

    六、执行插件目标,准备生成代码

      

     执行成功控制台会显示如下信息:

     看看项目中是否已经生成新的代码:

     试试看吧~

  • 相关阅读:
    Python 简明教程 --- 15,Python 函数
    Python 简明教程 --- 14,Python 数据结构进阶
    Zookeeper分布式过程协同技术
    Zookeeper分布式过程协同技术
    Zookeeper分布式过程协同技术
    实战:IDEA运行速度调优
    Nacos学习笔记
    设计模式的七大原则详解
    【IDEA】创建maven项目,webapp没有被标识,无法识别
    新手安装配置git简洁教程
  • 原文地址:https://www.cnblogs.com/ywy8/p/14481807.html
Copyright © 2011-2022 走看看