尋找寫代碼感覺(五)之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="src\main\java"
                            targetPackage="com.rongrong.wiki.domain"/>

        <!-- mapper xml的位置 -->
        <sqlMapGenerator targetProject="src\main\resources"
                         targetPackage="mapper"/>

        <!-- mapper類的位置 -->
        <javaClientGenerator targetProject="src\main\java"
                             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、測試接口

結果如下:

四、寫在最後

到此,代碼生成器的使用演示完畢,有興趣的同學,請自行嘗試。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章