您的位置:首页 > 编程语言

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

2021-10-11 00:09 260 查看 https://www.cnblogs.com/longro

一、
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"

56c
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、测试接口

结果如下:

四、写在最后

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐