springboot整合Mybatis Generator插件自動生成代碼(使用idea工具)


一、創建springboot項目,這里省略,直接看創建好的項目目錄

 

二、pom.xml文件中配置 mybatis-generator-maven

<!--mybatis自動生成代碼插件-->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <configuration>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
            </plugin>

完整的pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.fx67ll</groupId>
    <artifactId>fx67ll</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>fx67ll</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.1.1.RELEASE</version>
        </dependency>
        <!-- 熱部署 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
        <!--整合mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.1</version>
        </dependency>
        <!-- mybatis的分頁插件 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.5</version>
        </dependency>
        <!--整合mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>
        <!--單元測試-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>
        <!--整合druid-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.10</version>
        </dependency>

        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.9.3</version>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.3</version>
        </dependency>
        <dependency>
            <groupId>commons-httpclient</groupId>
            <artifactId>commons-httpclient</artifactId>
            <version>3.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.0</version>
        </dependency>
        <!-- pinyin4j jar -->
        <dependency>
            <groupId>com.belerweb</groupId>
            <artifactId>pinyin4j</artifactId>
            <version>2.5.0</version>
        </dependency>
        <!-- pinyin4j jar -->
        <!-- json lib jar -->
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.7.0</version>
        </dependency>
        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>3.2</version>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging-api</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>net.sf.ezmorph</groupId>
            <artifactId>ezmorph</artifactId>
            <version>1.0.6</version>
        </dependency>
        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.1</version>
            <classifier>jdk15</classifier>
        </dependency>
        <!-- json lib jar -->
        <!-- Swagger API文檔 -->
        <!--springfox的核心jar包 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.6.1</version>
        </dependency>
        <!--springfox-ui的jar包(里面包含了swagger的界面靜態文件) -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.6.1</version>
        </dependency>
        <!-- Swagger API文檔 -->
    </dependencies>

    <build>
        <finalName>fx67ll</finalName>
        <!--<resources>-->
        <!--<resource>-->
        <!--<directory>src/main/resources</directory>-->
        <!--<includes>-->
        <!--<include>**/*.*</include>-->
        <!--</includes>-->
        <!--<filtering>false</filtering>-->
        <!--</resource>-->
        <!--<resource>-->
        <!--<directory>src/main/java</directory>-->
        <!--<includes>-->
        <!--<include>**/*.xml</include>-->
        <!--</includes>-->
        <!--<filtering>false</filtering>-->
        <!--</resource>-->
        <!--</resources>-->
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding><!-- 指定編碼格式,否則在DOS下運行mvn compile命令時會出現莫名的錯誤,因為系統默認使用GBK編碼 -->
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <encoding>UTF-8</encoding><!-- 指定編碼格式,否則在DOS下運行mvn命令時當發生文件資源copy時將使用系統默認使用GBK編碼 -->
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!-- 沒有該配置,devtools 不生效 -->
                    <fork>true</fork>
                </configuration>
            </plugin>
            <!--mybatis自動生成代碼插件-->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <configuration>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

三、application.yml配置

# 數據源配置
spring:
    #靜態文件配置
    resources:
        static-locations: classpath:/static,classpath:/META-INF/resources,classpath:/templates/
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://sql.m8265.vhostgo.com:3306/fx67ll?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        username: fx67ll
        password: zsplat5859
        ######################### Druid連接池的配置信息  #################
        spring.druid.initialSize: 5                                 #初始化連接大小
        spring.druid.minIdle: 5                                     #最小連接池數量
        spring.druid.maxActive: 20                                  #最大連接池數量
        spring.druid.maxWait: 60000                                 #獲取連接時最大等待時間,單位毫秒
        spring.druid.timeBetweenEvictionRunsMillis: 60000           #配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒
        spring.druid.minEvictableIdleTimeMillis: 300000             #配置一個連接在池中最小生存的時間,單位是毫秒
        spring.druid.validationQuery: SELECT 1 FROM DUAL            #測試連接
        spring.druid.testWhileIdle: true                            #申請連接的時候檢測,建議配置為true,不影響性能,並且保證安全性
        spring.druid.testOnBorrow: false                            #獲取連接時執行檢測,建議關閉,影響性能
        spring.druid.testOnReturn: false                            #歸還連接時執行檢測,建議關閉,影響性能
        spring.druid.poolPreparedStatements: false                  #是否開啟PSCache,PSCache對支持游標的數據庫性能提升巨大,oracle建議開啟,mysql下建議關閉
        spring.druid.maxPoolPreparedStatementPerConnectionSize: 20  #開啟poolPreparedStatements后生效
        spring.druid.filters: stat,wall,log4j                       #配置擴展插件,常用的插件有=>stat:監控統計  log4j:日志  wall:防御sql注入
        spring.druid.connectionProperties: 'druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000'
#端口配置
server:
  compression:
    enabled: true
    mime-types: application/json,application/xml,text/html,text/xml,text/plain
    min-response-size: 4096
  port: 8086
  servlet:
    session:
      timeout: 30
    context-path: /fx67ll
  tomcat:
    uri-encoding: UTF-8
    max-threads: 30
#mybatis配置
mybatis:
  #映射文件路徑
  mapper-locations: classpath*:/mapper/*/*Mapper.xml
  configuration:
    call-setters-on-nulls: true # 返回Map集合時,針對空值字段強行返回
  #模型所在的包名
  type-aliases-package: com.fx67ll.app.model

四、generatorConfig.xml配置

在resources文件下創建generatorConfig.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>

<!--classPathEntry:數據庫的JDBC驅動,換成你自己的驅動位置 可選 -->
<classPathEntry
location="D://maven//repository//mysql//mysql-connector-java//5.1.25//mysql-connector-java-5.1.25.jar"/>

<!-- 一個數據庫一個context -->
<context id="DB2Tables" targetRuntime="Mybatis3">

<!-- 自動識別數據庫關鍵字,默認false,如果設置為true,根據SqlReservedWords中定義的關鍵字列表;一般保留默認值,遇到數據庫關鍵字(Java關鍵字),使用columnOverride覆蓋 -->
<property name="autoDelimitKeywords" value="true"/>

<!-- 生成的Java文件的編碼 -->
<property name="javaFileEncoding" value="utf-8"/>

<!-- beginningDelimiter和endingDelimiter:指明數據庫的用於標記數據庫對象名的符號,比如ORACLE就是雙引號,MYSQL默認是`反引號; -->
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>

<!-- 格式化java代碼 -->
<property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>

<!-- 格式化XML代碼 -->
<property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
<plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>
<plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>

<!--配置生成注釋信息,最多配置一個 -->
<commentGenerator>
<!-- 阻止生成注釋包含時間戳 默認為false -->
<property name="suppressDate" value="true"/>
<!-- 注釋是否添加數據庫表的備注信息 默認為false -->
<property name="addRemarkComments" value="true"/>
</commentGenerator>

<!-- jdbc連接-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://sql.m8265.vhostgo.com:3306/fx67ll"
userId="fx67ll"
password="zsplat5859"/>

<!-- 類型轉換 -->
<javaTypeResolver>
<!-- 是否使用bigDecimal, false可自動轉化以下類型(Long, Integer, Short, etc.) -->
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>

<!-- 生成實體類地址 -->
<javaModelGenerator targetPackage="com.fx67ll.app.model" targetProject="src/main/java">
<!-- 是否讓schema作為包的后綴 -->
<property name="enableSubPackages" value="true"/>
<!-- 從數據庫返回的值去掉前后空格 -->
<property name="trimStrings" value="true"/>
</javaModelGenerator>

<!-- 生成map.xml文件存放地址 -->
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>

<!-- 生成接口dao type="ANNOTATEDMAPPER",生成Java Model 和基於注解的Mapper對象
type="MIXEDMAPPER",生成基於注解的Java Model 和相應的Mapper對象
type="XMLMAPPER",生成SQLMap XML文件和獨立的Mapper接口 -->
<javaClientGenerator targetPackage="com.fx67ll.app.dao" targetProject="src/main/java" type="XMLMAPPER">
<property name="enableSubPackages" value="false"/>
</javaClientGenerator>

<!-- table可以有多個,每個數據庫中的表都可以寫一個table,tableName表示要匹配的數據庫表,也可以在tableName屬性中通過使用%通配符來匹配所有數據庫表,只有匹配的表才會自動生成文件 enableSelectByPrimaryKey相應的配置表示是否生成相應的接口 -->
<table tableName="zs_sys_user" enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>

</context>
</generatorConfiguration>

五、在idea中添加一個mybatis generator maven插件啟動選項,選擇Edit Configuration… 點擊加號"+"添加,選擇maven,填寫名稱(這里用mybatis_generator),命令行:mybatis-generator:generate -e

六、選擇mybatis_generator運行

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM