目录

  • 文档
  • mybatis-generator-config.xml
  • application.yml配置
  • pom.xml



文档


mybatis代码生成器sqlite_spring


mybatis-generator-config.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>

    <!-- 配置文件路径在 主要是为了获取application.propertyjdbc的连接值, 因为我这里是application.yml
    不知道怎么获取,所以可以不要注释掉-->
<!--    <properties resource="application.yml" />-->

<!--    defaultModelType="flat": flat,该模型只为每张表生成一个实体类,这个实体类包含表中所有的字段,这种模型最简单,推荐使用-->
    <context id="mysqlgenerator" targetRuntime="MyBatis3" defaultModelType="flat" >

<!-- 由于beginningDelimiter和endingDelimiter的默认值为双引号("),
在Mysql中不能这么写,所以还要将这两个默认值改为**反单引号(`)**,配置如下:-->
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>

        <!-- 生成的Java文件的编码-->
        <property name="javaFileEncoding" value="UTF-8"/>
<!-- 格式化java代码-->
        <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
<!-- 格式化XML代码-->
        <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
<!-- 设置启用数据库字段下划线映射到java对象的驼峰式命名属性,默认为false-->
        <property name="useActualColumnNames" value="true"/>

        <!--        mybatis的一些插件 写在这里了解,因为idea中有一个lombok插件@Data有其中某些插件的效果
                    默认提供了get,set,hashcode,tostring方法-->

<!--        <!–        这个插件用来给Java模型生成equals和hashcode方法–>-->
<!--        <plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin" />-->
<!--        <!–        这个插件主要用来为生成的Java模型类添加序列化接口,并生成serialVersionUID字段;–>-->
<!--        <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />-->
<!--        <!–        这个插件用来在XXXExample类中生成大小写敏感的LIKE方法–>-->
<!--        <plugin type="org.mybatis.generator.plugins.CaseInsensitiveLikePlugin" />-->
<!--        <!–        生成toString方法的插件–>-->
<!--        <plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>-->

<!--        suppressAllComments:**阻止**生成注释,默认为false-->
<!--        suppressDate:**阻止**生成的注释包含时间戳,默认为false-->
<!--        有时候生成注释太多,看的眼花缭乱,所以可以设置不要注释-->
        <commentGenerator>
            <property name="suppressDate" value="true" />
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/thymeleaf?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8&useSSL=false"
                        userId="root"
                        password="root">
            <property name="nullCatalogMeansCurrent" value="true"/>
        </jdbcConnection>

<!--        <jdbcConnection-->
<!--                driverClass="${spring.datasource.driver-class-name}"-->
<!--                 connectionURL="${spring.datasource.url}"-->
<!--                 userId="${spring.datasource.username}"-->
<!--                 password="${spring.datasource.password}">-->
<!--        </jdbcConnection>-->

<!--      true:使用BigDecimal对应DECIMAL和 NUMERIC数据类型  false:默认,       scale>0;length>18:使用BigDecimal; scale=0;length[10,18]:使用Long;scale=0;length[5,9]:使用Integer;  scale=0;length<5:使用Short; -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- 实体类生成的位置 -->
        <javaModelGenerator targetPackage="com.common.code.entity" targetProject="src/main/java">
<!--            只对MyBatis3有效,如果true就会使用构造方法入参,如果false就会使用setter方式。默认为false-->
            <property name="constructorBased" value="false"/>
<!--            如果true,MBG会根据catalog和schema来生成子包。如果false就会直接用targetPackage属性。默认为false-->
            <property name="enableSubPackages" value="false" />
<!--            该属性用来配置实体类属性是否可变,如果设置为true,那么constructorBased不管设置成什么,都会使用构造方法入参,并且不会生成setter方法。如果为false,实体类属性就可以改变。默认为false-->
            <property name="immutable" value="false"/>
<!--            配置基础基类,可以注释掉-->
<!--            <property name="rootClass" value="com.common.code.entity.BaseEntity"/>-->
<!--         是否对数据库查询结果进行trim操作-->
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!-- *Mapper.xml 文件的位置 -->
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>

        <!-- Mapper 接口文件的位置 -->
        <javaClientGenerator targetPackage="com.common.code.mapper" targetProject="src/main/java" type="XMLMAPPER">
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>

<!-- table这里用的通配符匹配全部的表,另外所有表都有自动增长的id字段。如果不是所有表的配置都一样,可以做针对性的配置。-->
<!--        <table tableName="%">-->
<!--            <generatedKey column="id" sqlStatement="Mysql"/>-->
<!--        </table>-->

        <!-- 相关表的配置 alias="user"配置别名
            一般代码生成器会生成两个实体类,其中一个是EntiityExample 一般用不到,可以设置为不生成-->
        <table tableName="user" domainObjectName="User" alias="user" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"
          enableSelectByExample="false" selectByExampleQueryId="false" >
<!--            是否使用mysql表中列的名称-->
<!--        <property name="useActualColumnNames" value="true"/>-->
        </table>
    </context>

</generatorConfiguration>

application.yml配置

#mysql数据源配置
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/shiro?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&useSSL=false
    driver-class-name:  com.mysql.cj.jdbc.Driver
    username: root
    password: root
    type: com.alibaba.druid.pool.DruidDataSource
    #   数据源其他配置
    initialSize: 5
    minIdle: 5
    maxActive: 20
    maxWait: 60000
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    poolPreparedStatements: true
    #   配置监控统计拦截的filters,去掉后监控界面sql无法统计,
    #   stat:监控统计、'wall'用于防火墙、log4j:日志记录
    #   log4j需要导入依赖
    filters: stat,wall.log4j
    maxPoolPreparedStatementPerConnectionSize: 20
    useGlobalDataSourceStat: true
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

mybatis:
  type-aliases-package: com.commom.project3.pojo
  mapper-locations: classpath:/mybatis/mapper/*Mapper.xml

pom.xml

<?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 https://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.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

<!--        项目的名字-->
    <groupId>com.common</groupId>
    <artifactId>project3</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>project3</name>
    <description>Demo project for Spring Boot</description>

<!--        编码和jre配置-->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>

<!--        核心模块,包括自动配置支持、日志和YAML -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

<!--        web模块-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

<!--        热部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>

<!--        druid连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.16</version>
        </dependency>

<!--        lombok插件-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

<!--        log4j日志依赖-->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.12.1</version>
        </dependency>

<!--        test-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

<!--        swagger2的依赖-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>swagger-bootstrap-ui</artifactId>
            <version>1.9.3</version>
        </dependency>

<!--        mysql驱动依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.11</version>
        </dependency>

<!--        mybatis启动依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.0</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>

<!--        执行测试用例的插件-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <!--跳过项目运行测试用例-->
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>

            <!--       Mybatis-generator插件,用于自动生成Mapper和实体类-->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.6</version>
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>8.0.11</version>
                    </dependency>
                    <dependency>
                        <groupId>org.mybatis.spring.boot</groupId>
                        <artifactId>mybatis-spring-boot-starter</artifactId>
                        <version>2.1.0</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <configurationFile>src/main/resources/mybatis/mybatis-generator-config.xml</configurationFile>
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
                </configuration>
            </plugin>

        </plugins>
    </build>

</project>