• tk_mapper 代码生成


    包内创建:generator
    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">
    <!-- Mybatis generator配置,默认针对MySQL数据库,具体参考 http://www.mybatis.org/generator/configreference/xmlconfig.html -->
    <generatorConfiguration>
    <!--    mysql 导入的路径-->
        <!-- 配置文件的路径 -->
        <properties resource="generator/mybatisGenerator.properties"/>
        <classPathEntry  location="D:\apache-maven-3.6.1\repository\mysql\mysql-connector-java\8.0.17\mysql-connector-java-8.0.17.jar"/>
        <!-- 每一张表只生成一个实体类 -->
        <context id="default" targetRuntime="MyBatis3" defaultModelType="flat">
            <!-- 生成的Java文件的编码 -->
            <property name="javaFileEncoding" value="UTF-8"/>
            <!-- 自动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表;
                 一般保留默认值,遇到数据库关键字(Java关键字),使用columnOverride覆盖 -->
            <property name="autoDelimitKeywords" value="false"/>
            <!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,
            比如ORACLE就是双引号 \&quot;,MYSQL默认是`反引号 -->
            <!--        <property name="beginningDelimiter" value=""/>-->
            <!--        <property name="endingDelimiter" value=""/>-->
            <!-- tk -->
            <!--这里最关键的参数就是 mappers,配置后生成的 Mapper 接口都会自动继承上改接口-->
            <!--
            其他参数的含义:
            •	caseSensitive 是否区分大小写,默认值 false。如果数据库区分大小写,这里就需要配置为 true,这样当表名为 USER 时,会生成 @Table(name = "USER") 注解,否则使用小写 user 时会找不到表。
            •	forceAnnotation 是否强制生成注解,默认 false,如果设置为 true,不管数据库名和字段名是否一致,都会生成注解(包含 @Table@Column)。
            •	beginningDelimiter 和 endingDelimiter 开始和结束分隔符,对于有关键字的情况下适用。
            •	useMapperCommentGenerator 是否使用通用 Mapper 提供的注释工具,默认 true 使用,这样在生成代码时会包含字段的注释(目前只有 mysql 和 oracle 支持),设置 false 后会用默认的,或者你可以配置自己的注释插件。
            •	generateColumnConsts 在生成的 model中,增加字段名的常量,便于使用 Example 拼接查询条件的时候使用。
            •	lombok 增加 model 代码生成时,可以直接生成 lombok 的 @Date 注解, 使用者在插件配置项中增加 <property name="lombok" value="Getter,Setter,ToString,Accessors"/> 即可生成对应包含注解的 model 类。
            -->
            <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
                <property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
                <property name="caseSensitive" value="true"/>
                <property name="forceAnnotation" value="true"/>
                <!--            <property name="beginningDelimiter" value="`"/>-->
                <!--            <property name="endingDelimiter" value="`"/>-->
                <property name="lombok" value="Data"/>
            </plugin>
    
    
            <!-- 数据库连接的信息:驱动类、连接地址、用户名、密码 -->
            <jdbcConnection driverClass="${jdbc.driverClass}"
                            connectionURL="${jdbc.url}"
                            userId="${jdbc.username}"
                            password="${jdbc.password}">
                <!-- 用于获取表的注释信息等 -->
                <property name="useInformationSchema" value="true"/>
            </jdbcConnection>
    
    
            <!-- Java类型解析配置 -->
            <javaTypeResolver>
                <!-- 将JDBC DECIMAL和NUMERIC类型解析为java.math.BigDecimal -->
                <property name="forceBigDecimals" value="true"/>
                <!--JDBC DATE,TIME和TIMESTAMP类型解析为java.util.Date -->
                <property name="useJSR310Types" value="false"/>
            </javaTypeResolver>
    
    
            <!-- targetPackage生成Domain类的包路径,targetProject生成Domain类的物理路径 -->
            <javaModelGenerator targetPackage="${model.target.package}" targetProject="${model.target.project}">
                <!-- 不使用schema作为包的后缀 -->
                <property name="enableSubPackages" value="false"/>
                <!-- 不为String类型的setter方法自动加上trim -->
                <property name="trimStrings" value="false"/>
            </javaModelGenerator>
    
    
            <!-- targetPackage生成XML文件的包路径,targetProject生成XML文件的物理路径-->
            <sqlMapGenerator targetPackage="${mapper.target.package}" targetProject="${mapper.target.project}">
                <!-- 不使用schema作为包的后缀 -->
                <property name="enableSubPackages" value="false"/>
            </sqlMapGenerator>
    
    
            <!-- targetPackage生成DAO接口的包路径,targetProject生成DAO接口的物理路径 -->
            <javaClientGenerator type="XMLMAPPER"
                                 targetPackage="${dao.target.package}" targetProject="${dao.target.project}">
                <!-- 不使用schema作为包的后缀 -->
                <property name="enableSubPackages" value="false"/>
            </javaClientGenerator>
    
    
            <!-- 指定数据库表,schema数据库名,tableName数据表名,%表示匹配所有的表 -->
            <table tableName="pms_category" schema="pmsCategory"
                   enableCountByExample="false" enableUpdateByExample="false"
                   enableDeleteByExample="false" enableSelectByExample="false"
                   selectByExampleQueryId="false">
                <!-- generatedKey用于生成生成主键的方法,column表示主键名称,
                     sqlStatement=JDBC相当于在生成的insert元素上添加useGeneratedKeys="true"和keyProperty属性 -->
                <!--            <generatedKey column="id" sqlStatement="select SEQ_{1}.nextval from dual"/>-->
                <generatedKey column="id" sqlStatement="JDBC"/>
    
                <!--该元素会在根据表名计算类名之前先重命名表名,非常适合用于表名中都有公用的前缀字符串的时候,-->
                <!--比如表名为:T_USER,T_ORDER等;-->
                <!--那么就可以设置searchString为"^T"(无论表名是否大写,此处首字母一定为大写),并使用空白替换,-->
                <!--那么会生成User, Order对象,-->
                <!--注意,MBG是使用java.util.regex.Matcher.replaceAll来替换searchString和replaceString的-->
                <!--                        <domainObjectRenamingRule searchString="^CIPS" replaceString=""/>-->
    
                <!--
                                    该元素会在根据表中列名计算对象属性名之前先重命名列名,非常适合用于表中的列都有公用的前缀字符串的时候,
                                    比如列名为:CUST_ID,CUST_NAME,CUST_EMAIL,CUST_ADDRESS等;
                                    那么就可以设置searchString为"^CUST_",并使用空白替换,那么生成的Customer对象中的属性名称就不是
                                    custId,custName等,而是先被替换为ID,NAME,EMAIL,然后变成属性:id,name,email;
                                    注意,MBG是使用java.util.regex.Matcher.replaceAll来替换searchString和replaceString的,
                                    如果使用了columnOverride元素,该属性无效;
                                       <columnRenamingRule searchString="" replaceString=""/>
                                    -->
                <!-- 用来修改表中某个列的属性,MBG会使用修改后的列来生成domain的属性;
                    column:要重新设置的列名;一个table元素中可以有多个columnOverride元素
                    详细可参考http://www.mybatis.org/generator/configreference/columnOverride.html
                    <columnOverride column="username" property="userName" />
                -->
                <!-- ignoreColumn设置一个MGB忽略的列,如果设置了改列,那么在生成的domain中,生成的SQL中,都不会有该列出现
                    column:指定要忽略的列的名字;delimitedColumnName:参考table元素的delimitAllColumns配置,默认为false;
                    注意,一个table元素中可以有多个ignoreColumn元素
                    <ignoreColumn column="deptId" delimitedColumnName=""/>
                -->
            </table>
        </context>
    
    </generatorConfiguration>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125

    mybatisGenerator.properties

    jdbc.driverClass=com.mysql.cj.jdbc.Driver
    jdbc.url=jdbc:mysql://101.42.221.186:3306/gulimall_pms?serverTimezone=UTC&nullCatalogMeansCurrent=true
    jdbc.username=root
    jdbc.password=123456
    # Domain\u7C7B\u7684\u5305\u8DEF\u5F84
    model.target.package=com.liuyang.entity.po
    # Domain\u7C7B\u7684\u7269\u7406\u8DEF\u5F84
    model.target.project=src/main/java
    # \u751F\u6210Mapper XML\u6587\u4EF6\u7684\u5305\u8DEF\u5F84
    mapper.target.package=mapper.participant
    # \u751F\u6210Mapper XML\u6587\u4EF6\u7684\u7269\u7406\u8DEF\u5F84
    mapper.target.project=src/main/resources
    # DAO\u63A5\u53E3\u7684\u5305\u8DEF\u5F84
    dao.target.package=com.liuyang.mapper
    # DAO\u63A5\u53E3\u7684\u7269\u7406\u8DEF\u5F84
    dao.target.project=src/main/java
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    引入插件

       <build>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                    <filtering>true</filtering>
                    <includes>
                        <include>application.yml</include>
                        <include>**/**.xml
                        **/**.properties</include>
                        <include>**/**.doc
                        **/**.docx</include>
                        <include>**/**.xlsx
                        **/**.xls</include>
                        <include>**/**.pdf
                    
                
            
            
    
                
                    org.mybatis.generator
                    mybatis-generator-maven-plugin
                    1.3.7
                    
                        
                            ${basedir}/src/main/resources/generator/generatorConfig.xml
                        
                        true
                        true
                    
                    
                        
                            tk.mybatis
                            mapper
                            4.1.5
                        
                    
                
    
            
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42

    引入maven

     <dependency>
                <groupId>tk.mybatis</groupId>
                <artifactId>mapper-spring-boot-starter</artifactId>
                <version>2.1.5</version>
            </dependency>
            <dependency>
                <groupId>tk.mybatis</groupId>
                <artifactId>mapper</artifactId>
                <version>4.0.4</version>
            </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 相关阅读:
    「Windows Bug」Window 系统下双网卡内外网冲突
    C语言天花板——指针(初阶)
    Autosar实践——诊断配置(DaVinci Configuration)
    常用的软件架构设计模式
    Flutter macOS 教程之 01 macOS App开发快速入门 (教程含源码)
    PyQt5快速开发与实战 6.5 QGridLayout(网格布局)
    GitHub基础
    使用 nohup 运行 Python 脚本
    LeetCode每日一题(1441. Build an Array With Stack Operations)
    如何获取大数据平台 CDH 中 hive metastore db 的用户名和密码?
  • 原文地址:https://blog.csdn.net/qq_44833327/article/details/126246233