zoukankan      html  css  js  c++  java
  • 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运行

  • 相关阅读:
    Linux学习集
    sql命令学习集
    Linux中记录终端(Terminal)输出到文本文件
    利用HttpClient以post形式上传文件
    12个.net 开发者值得去读的国外Blog
    如何使用 Visual C# .NET 处理 Excel 事件
    关于我的Blog的声明
    一个项目经理的一些个人体会
    将DataGrid数据写入Excel文件。
    微软的秘密:微软公司软件开发模式简介
  • 原文地址:https://www.cnblogs.com/zhou-pan/p/10762274.html
Copyright © 2011-2022 走看看