一、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、測試介面
結果如下:
四、寫在最後
到此,程式碼生成器的使用演示完畢,有興趣的同學,請自行嘗試。