MybatisPlus代码生成器和SpringBoot整合

MybatisPlus代码生成器和SpringBoot整合(原创)

一、代码生成器

直接上代码

1.新建一个maven项目

2.pom.xml


	4.0.0
	com.wqky
	generator4mybatisPlus
	0.0.1-SNAPSHOT

	
		
		
		    com.baomidou
		    mybatis-plus
		    2.3
				
		
		
			log4j
			log4j
			1.2.17
		
		
		
			com.mchange
			c3p0
			0.9.5.2
		
		
		
			mysql
			mysql-connector-java
			5.1.37
		
		
		
			org.springframework
			spring-context
			4.3.10.RELEASE
		
		
			org.springframework
			spring-orm
			4.3.10.RELEASE
		
		
			org.springframework
			spring-webmvc
			4.3.10.RELEASE
		
		
		
		
		    org.apache.velocity
		    velocity-engine-core
		    2.0
		
		
		
		 
			org.slf4j
			slf4j-api
			1.7.7
		
		
			org.slf4j
			slf4j-log4j12
			1.7.7
		

	

3.建一个类

package com.wqky;

import com.baomidou.mybatisplus.enums.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.DbType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

public class CodeGenerator {

	public static void main(String[] args) {
		//1. 全局配置
		GlobalConfig config = new GlobalConfig();
//		String path = "C:\\Users\\Flynn\\Desktop";// 生成路径,可设置为项目路径
		String path = System.getProperty("user.dir")+"\\src\\main\\java";//设置为当前项目里面,刷新项目可见
		String author = "wqky";//设置作者
		config.setActiveRecord(true) // 是否支持AR模式
			  .setAuthor(author) // 作者
			  .setOutputDir(path) // 生成路径,可设置为项目路径
			  .setFileOverride(true)  // 文件覆盖
			  .setIdType(IdType.ID_WORKER) // 主键策略
			  							  //①auto:数据库ID自增;
										  //②input:用户输入ID;
										  //③id_worker:全局唯一ID(64位),内容为空自动填充(默认);
										  //④uuid:全局唯一ID(32位),内容为空自动填充
			  .setServiceName("%sService")  // 设置生成的service接口的名字的首字母是否为I,这样设置就没有I
 			  .setBaseResultMap(true)
 			  .setEnableCache(false)// XML 二级缓存
 			  .setOpen(false)//生成后打开文件夹
 			  .setBaseColumnList(true);
		
		//2. 数据源配置
		DataSourceConfig  dsConfig  = new DataSourceConfig();
		dsConfig.setDbType(DbType.MYSQL)  // 设置数据库类型
				.setDriverName("com.mysql.jdbc.Driver")
				.setUrl("jdbc:mysql://rm-bp1fb9sj8vk658l4xyo.mysql.rds.aliyuncs.com:3306/apollo_test")
				.setUsername("wanqihulian")
				.setPassword("wqhl@20180604");
		 
		//3. 策略配置
		StrategyConfig stConfig = new StrategyConfig();
		stConfig.setCapitalMode(true) //全局大写命名
				.setDbColumnUnderline(true)  // 指定表名 字段名是否使用下划线
				.setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略
				.setTablePrefix("t_")	//以什么表开头
				.setInclude("t_user");  // 生成的表
		
		//4. 包名策略配置 
		PackageConfig pkConfig = new PackageConfig();
		pkConfig.setParent("io.renren")//父包名
				.setMapper("mapper")
				.setService("service")
				.setServiceImpl("service.impl")
				.setController("controller")
				.setEntity("entity")
				.setXml("mapper");
		
		//5. 整合配置
		AutoGenerator  ag = new AutoGenerator();
		
		ag.setGlobalConfig(config)
		  .setDataSource(dsConfig)
		  .setStrategy(stConfig)
		  .setPackageInfo(pkConfig);
		
		//6. 执行
		ag.execute();
		System.err.println(author+"攻城狮,您的代码自动生成完毕,路径为:"+path);
	}

}

4.log4j.xml



 

 
 
   
   
    
   
 
 
   
 
 
   
 
 
   
   
 

到此,MybatisPlus代码生成器完毕!!!

 

二、MybatisPlus和SpringBoot整合

直接上代码

1.pom.xml



	4.0.0

	com.fly
	MybatisPlusSpringBoot
	0.0.1-SNAPSHOT
	jar

	MybatisPlusSpringBoot
	Test MybatisPlus project for Spring Boot

	
		org.springframework.boot
		spring-boot-starter-parent
		2.0.3.RELEASE
		 
	

	
		UTF-8
		UTF-8
		1.8
	

	
		
		
			mysql
			mysql-connector-java
			runtime
		
		
			com.baomidou
			mybatis-plus-boot-starter
			3.0.1
		
		
			org.springframework.boot
			spring-boot-starter-web
		

		
			org.springframework.boot
			spring-boot-starter-test
			test
		
		
		
		
			org.springframework.boot
			spring-boot-devtools
			true
		
	

	
		
			
				org.springframework.boot
				spring-boot-maven-plugin
			
		
	



2.Copy代码生成器的代码到SpringBoot项目中

MybatisPlus代码生成器和SpringBoot整合_第1张图片

3.配置好数据源和MybatisPlus相对应配置

mybatis-plus:
  #在 Mapper 中有自定义方法
  mapper-locations: classpath:mybatis/*.xml
  #通过该属性可以给包中的类注册别名
  type-aliases-package: com.wqky.entity

4.SQL执行效率插件和分页插件

package com.wqky.config;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;

@EnableTransactionManagement
@Configuration
@MapperScan("com.wqky.service.*.mapper*")
public class MybatisPlusConfig {
	/**
     * SQL执行效率插件
     */
    @Bean
    public PerformanceInterceptor performanceInterceptor() {
        return new PerformanceInterceptor()
        		.setFormat(true)//参数:format SQL SQL是否格式化,默认false
        		.setMaxTime(1000);//参数:maxTime SQL 执行最大时长,超过自动停止运行,有助于发现问题。
    }
    
    /**
     * 分页插件
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }
}

5.测试使用

package com.wqky.controller;


import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wqky.entity.User;
import com.wqky.service.UserService;

/**
 * 

* 用户表 前端控制器 *

* * @author wqky * @since 2018-11-12 */ @Controller @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @ResponseBody @GetMapping("/getUserById") public User getUserById(String id) { User user = userService.getById(id); return user; } @ResponseBody @GetMapping("/save") public String save() { User user = new User(); // user.setUserId(UUID.randomUUID().toString()); user.setAge(44); user.setCreateTime(new Date()); userService.save(user); return user.getUserId(); } @ResponseBody @GetMapping("/update") public User update() { User user = new User(); user.setUserId("1"); user.setUserName("flynn"); userService.updateById(user); return user; } @ResponseBody @GetMapping("/delete") public void delete() { userService.removeById("8958cb42-2ca5-4b6d-ae4e-3ca9135a14c8"); } @ResponseBody @GetMapping("/page") public List page(){ QueryWrapper wrapper = new QueryWrapper<>(); wrapper.orderByDesc("create_time"); IPage page = userService.page(new Page<>(0,3), wrapper); List list = page.getRecords(); return list; } }

到此,MybatisPlus和SpringBoot整合完毕!!!

你可能感兴趣的:(《,MybatisPlus)