• 寻找写代码感觉(五)之Mybatis官方代码生成器的使用


    一、Mybatis Generator生成器

    见名知意,官方给出的代码生成器。好处就是不用自己写实体类、接口、xml文件了,应对简单增删改查是可以的。复杂的还是需要自己手写sql的。

    二、Mybatis代码生成器的使用

    下面将演示使用代码生成器,生成持久层代码。

    1、添加POM依赖

    <!-- mybatis generator 自动生成代码插件 -->
                <plugin>
                    <groupId>org.mybatis.generator</groupId>
                    <artifactId>mybatis-generator-maven-plugin</artifactId>
                    <version>1.4.0</version>
                    <configuration>
                        <configurationFile>src/main/resources/generator/generator-config.xml</configurationFile>
                        <overwrite>true</overwrite>
                        <verbose>true</verbose>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>mysql</groupId>
                            <artifactId>mysql-connector-java</artifactId>
                            <version>8.0.22</version>
                        </dependency>
                    </dependencies>
                </plugin>
    

    2、添加对应配置文件

    src/main/resources/generator/下,创建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>
        <context id="Mysql" targetRuntime="MyBatis3" defaultModelType="flat">
    
            <!-- 自动检查关键字,为关键字增加反引号 -->
            <property name="autoDelimitKeywords" value="true"/>
            <property name="beginningDelimiter" value="`"/>
            <property name="endingDelimiter" value="`"/>
    
            <!--覆盖生成XML文件-->
            <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" />
            <!-- 生成的实体类添加toString()方法 -->
            <plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>
    
            <!-- 不生成注释 -->
            <commentGenerator>
                <property name="suppressAllComments" value="true"/>
            </commentGenerator>
    
            <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                            connectionURL="jdbc:mysql://localhost:3306/wiki?useUnicode=true&amp;characterEncoding=utf-8&amp;useSSL=true&amp;serverTimezone=UTC"
                            userId="wiki"
                            password="wiki">
            </jdbcConnection>
    
            <!-- domain类的位置 -->
            <javaModelGenerator targetProject="srcmainjava"
                                targetPackage="com.rongrong.wiki.domain"/>
    
            <!-- mapper xml的位置 -->
            <sqlMapGenerator targetProject="srcmain
    esources"
                             targetPackage="mapper"/>
    
            <!-- mapper类的位置 -->
            <javaClientGenerator targetProject="srcmainjava"
                                 targetPackage="com.rongrong.wiki.mapper"
                                 type="XMLMAPPER"/>
    
          <table tableName="demo" domainObjectName="Demo"/>
    
        </context>
    </generatorConfiguration>
    

    3、准备数据库示例demo

    执行如下SQL示例:

    CREATE TABLE `demo` (
                            `id` bigint(20) NOT NULL AUTO_INCREMENT,
                            `name` varchar(50) DEFAULT NULL COMMENT '用户名',
                            PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='测试';
    
    INSERT INTO demo VALUES ('111', '这是代码生成器的测试数据')
    
    

    4、配置启动项

    使用maven命令生成,如下图:

    5、点击执行

    6、查看控制台效果

    可以清楚的看到,生成的实体类及接口。

    三、编写Service及测试接口

    1、编写Service代码

    示例代码如下:

    package com.rongrong.wiki.service;
    
    import com.rongrong.wiki.domain.Demo;
    import com.rongrong.wiki.domain.Test;
    import com.rongrong.wiki.mapper.DemoMapper;
    import com.rongrong.wiki.mapper.TestMapper;
    import org.springframework.stereotype.Service;
    
    import javax.annotation.Resource;
    import java.util.List;
    
    /**
     * @author rongrong
     * @version 1.0
     * @description
     * @date 2021/10/10 23:09
     */
    @Service
    public class DemoService {
    
        @Resource
        private DemoMapper demoMapper;
    
        public List<Demo> list() {
            return demoMapper.selectByExample(null);
        }
    }
    
    

    2、编写接口

    示例代码如下:

    package com.rongrong.wiki.controller;
    
    import com.rongrong.wiki.domain.Demo;
    import com.rongrong.wiki.domain.Test;
    import com.rongrong.wiki.service.DemoService;
    import com.rongrong.wiki.service.TestService;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.annotation.Resource;
    import java.util.List;
    
    /**
    *
    * @description
    * @version 1.0
    * @author longrong.lang
    *
    */
    @RestController
    @RequestMapping("/demo")
    public class DemoController {
    
        @Resource
        private DemoService demoService;
    
        @GetMapping("/list")
        public List<Demo> demolist() {
            return demoService.list();
        }
    }
    
    

    3、测试接口

    结果如下:

    四、写在最后

    到此,代码生成器的使用演示完毕,有兴趣的同学,请自行尝试。

    优秀不够,你是否无可替代

    软件测试交流QQ群:721256703,期待你的加入!!

    欢迎关注我的微信公众号:软件测试君


  • 相关阅读:
    数据结构串的运算算法
    java文件读取
    我的博客园
    示例 Edit 关闭键盘再显示
    用 Inkscape 做 SVG 给 TPath
    FMX 讯息框 FrameDialog
    让 ListView 在 Android 可回弹
    修正 ColorPanel 选色缓慢问题
    Eclipse Tomcat Project报错:HTTP Status 404错误
    gradle web项目启动报错: java.lang.ClassNotFoundException: org.springframework.web.util.IntrospectorCleanupListener
  • 原文地址:https://www.cnblogs.com/longronglang/p/15391515.html
Copyright © 2020-2023  润新知