寻找写代码感觉(五)之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&characterEncoding=utf-8&useSSL=true&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、测试接口
结果如下:

四、写在最后
到此,代码生成器的使用演示完毕,有兴趣的同学,请自行尝试。
寻找写代码感觉(五)之Mybatis官方代码生成器的使用的更多相关文章
- 寻找写代码感觉(二)之 Spring Boot  项目属性配置
		一.前言 写代码就和恋爱一样,有反馈就要趁热打铁,搞完了项目搭建,接下来就来搞搞项目配置. 二.IDEA设置 1.编码配置 这里所说的就是代码的编码格式,你可以不设置,但是可能要面临的是,很多未知的麻 ... 
- 寻找写代码感觉(一)之使用 Spring Boot 快速搭建项目
		写在前面 现在已经是八月份了,我已经荒废了半年居多,不得不说谈恋爱确实是个麻烦的事,谈好了皆大欢喜,分手了就是萎靡不振,需要很长一段时间才能缓过来. 人还是要有梦想的,至于实现只不过是一个契机,但凡不 ... 
- 寻找写代码感觉(十六)之 集成Validation做参数校验
		写在前面 今天是大年初五了... 不知不觉,又要上班了,美好的假期只剩一天了,有点不舍呢! 也不知道为什么,总感觉像在做梦一样,像没睡醒一样,并不是因为眼睛小,更多应该是自寻烦恼,想得多罢了. 参数校 ... 
- 寻找写代码感觉(三)之使用 Spring Boot 编写接口
		一.前言 项目配置完之后,接着就是写接口了,那咱们就开始吧. 二.项目配置补充知识点 上篇文章写的是关于项目属性配置的一些知识,这里针对上次遗忘内容进行补充如下: 2.1.获取配置文件的值 在appl ... 
- 寻找写代码感觉(八)之SpringBoot过滤器的使用
		一.什么是过滤器? 过滤器是对数据进行过滤,预处理过程,当我们访问网站时,有时候会发布一些敏感信息,发完以后有的会用*替代,还有就是登陆权限控制等,一个资源,没有经过授权,肯定是不能让用户随便访问的, ... 
- 【优雅写代码系统】springboot+mybatis+pagehelper+mybatisplus+druid教你如何优雅写代码
		目录 spring基本搭建 整合mybatis pom配置 mybatis配置 设置数据源 设置sqlsessionfactory 设置扫描 设置开启事务 资源放行 测试 结果 思考&& ... 
- 文档驱动 —— 表单组件(五):基于Ant Design Vue 的表单控件的demo,再也不需要写代码了。
		源码 https://github.com/naturefwvue/nf-vue3-ant 特点 只需要更改meta,既可以切换表单 可以统一修改样式,统一升级,以最小的代价,应对UI的升级.切换,应 ... 
- 写给新手看的 MyBatis 入门
		目录 MyBatis 使用前的准备 什么是 MyBatis 使用Maven 进行 MyBatis 开发环境搭建 MyBatis 入门 项目整体结构一览 MyBatis 的简单生命周期 1.获取 Sql ... 
- 【腾讯Bugly干货分享】深入理解 ButterKnife,让你的程序学会写代码
		本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/578753c0c9da73584b025875 0.引子 话说我们做程序员的,都 ... 
随机推荐
- unitest单元测试TestCase 执行测试用例(一)
			前言 unittest单元测试框架不仅可以适用于单元测试,还可以适用自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果. uni ... 
- Python - 面向对象编程 - 公共属性、保护属性、私有属性
			公共属性 在 Python 的类里面,所有属性和方法默认都是公共的 class PoloBlog: # 公共属性 sum = 0 # 构造方法 def __init__(self, name): se ... 
- Element form表单方法resetFields无效
			之前遇到resetFields无效时都是自己手动用this.ruleForm = Object.assign({}, this.ruleForm, this.$options.data().ruleF ... 
- 并发控制--context篇
			目录 1. 前言 2 Context 实现原理 2.1 接口定义 2.1 cancelCtx 2.1.1 Done()接口实现 2.1.2 Err()接口实现 2.1.3 cancel()接口实现 2 ... 
- Ubuntu 16.04LTS下eclipse连接mysql
			第一部分:打开eclipse,新建一个web工程,新建一个类db_test.java(jdbc连接mysql的原理自行百度) import java.sql.*; public class db_te ... 
- [源码解析] 深度学习流水线并行 PipeDream(2)--- 计算分区
			[源码解析] 深度学习流水线并行 PipeDream(2)--- 计算分区 目录 [源码解析] 深度学习流水线并行 PipeDream(2)--- 计算分区 0x00 摘要 0x01 前言 1.1 P ... 
- Linux centos7 mysql 的安装配置
			2021-07-21 1. 创建用户 # 创建用户useradd mysql# 修改密码 passwd mysql 2. 下载 wget 网址 3. 解压 # 创建安装文件夹mkdir app# 解压 ... 
- Python安装环境配置和多版本共存
			Python安装环境配置和多版本共存 1.环境变量配置: (1) 右键点击"计算机",然后点击"属性" (2) 然后点击"高级系统设置" ( ... 
- 图神经网络-环境配置与PyG库
			环境配置与PyG中图与图数据集的表示和使用 一.引言 PyTorch Geometric (PyG)是面向几何深度学习的PyTorch的扩展库,几何深度学习指的是应用于图和其他不规则.非结构化数据的深 ... 
- Postman 根据nginx日志查账号
			1) GET:http://fwm.le-yao.com/api/backend/profile 2) Headers中,在KEY中添加 Content-Type ,对应的VALUE为 applica ... 
