Lombok的装配 使用 mybatisplus的代码生成器的使用

lombok简介:就是通过@Data注解的方式省去了我们平时开发定义JavaBean之后,生成其属性的构造器、getter、setter、equals、hashcode、toString方法;但是,在编译时会自动生成这些方法,在.class文件中。

要使用lombok,我们需要安装配置lombok,首先下载lombok.jar包:https://www.projectlombok.org/download
怎么装配lombok :
将下载好的jar包记录其位置:
cmd窗口进去jar包目录 运行用Java -jar jar包名 运行jar包
lombokjar包的路径
在这里插入图片描述
输入命令运行
在这里插入图片描述
写入eclipse的文件根目录
在这里插入图片描述
然后倒入在eclipse的文件根目录文件夹中会有个复制的jar包 且会有配置文件中会自动生成两个配置项
在这里插入图片描述
在这里插入图片描述

重启eclipse 开启web项目
在使用之前,我们需要导入相应的包:

<dependency>
		    <groupId>org.projectlombok</groupId>
		    <artifactId>lombok</artifactId>
		    <version>1.16.20</version>
		    <scope>provided</scope>
		</dependency>

lombok 注解:
  lombok 提供的注解不多,可以参考官方视频的讲解和官方文档。
  文档地址:http://projectlombok.org/features/index.

下面介绍几个常用的 lombok 注解:
  @Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
  @Setter:注解在属性上;为属性提供 setting 方法
  @Getter:注解在属性上;为属性提供 getting 方法
  @Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
  @NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
  @AllArgsConstructor:注解在类上;为类提供一个全参的构造方法

mybatisplus的代码生成器的使用必须倒入包如下版本自选:

<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus</artifactId>
			<version>3.0.5</version>
		</dependency>
		<dependency>
			<groupId>org.apache.velocity</groupId>
			<artifactId>velocity-engine-core</artifactId>
			<version>2.0</version>
		</dependency>

		<!-- freemarker 模板引擎 -->
		<dependency>
			<groupId>org.freemarker</groupId>
			<artifactId>freemarker</artifactId>
			<version>2.3.28</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
		<dependency>
		    <groupId>org.projectlombok</groupId>
		    <artifactId>lombok</artifactId>
		    <version>1.16.20</version>
		    <scope>provided</scope>
		</dependency>
		 <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.39</version>
        </dependency>
		<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
			<dependency>
			    <groupId>org.springframework</groupId>
			    <artifactId>spring-core</artifactId>
			    <version>4.3.20.RELEASE</version>
			</dependency>

然后再写上生成方法以及类

package cn.pjj.cearn;

import java.util.ArrayList;
import java.util.List;

import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.FileOutConfig;
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.TemplateConfig;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

public class Automaticall {

	public static void main(String[] args) {
		  AutoGenerator mpg = new AutoGenerator();

	        // 全局配置
	        GlobalConfig gc = new GlobalConfig();
	        final String projectPath = System.getProperty("user.dir");
	        //生成代碼在哪個文件夾下
	        gc.setOutputDir(projectPath + "/src/main/java");
	        //生成代碼的作者是誰
	        gc.setAuthor("潘杰杰");
	        gc.setOpen(false);
	        mpg.setGlobalConfig(gc);

	        // 数据源配置
	        DataSourceConfig dsc = new DataSourceConfig();
	        dsc.setUrl("jdbc:mysql://localhost:3306/school?useUnicode=true&useSSL=false&characterEncoding=utf8");
	        dsc.setSchemaName("public");
	        dsc.setDriverName("com.mysql.jdbc.Driver");
	        dsc.setUsername("root");
	        dsc.setPassword("ps123456");
	        mpg.setDataSource(dsc);

	        // 包配置
	        //域名.公司名.项目名.模块名
	        			//controller
	        			//service
	        			//dao
	        final   PackageConfig pc = new PackageConfig();
	        //在内部类中使用外部的变量需要加final
	       final String modulename="student";
	        pc.setModuleName(modulename);
	        pc.setParent("com.pjj.text");
	        mpg.setPackageInfo(pc);

	        // 自定义配置
	        InjectionConfig cfg = new InjectionConfig() {
	            @Override
	            public void initMap() {
	                // to do nothing
	            }
	        };
	        List<FileOutConfig> focList = new ArrayList();
	        focList.add(new FileOutConfig("/templates/mapper.xml.ftl") {
	            @Override
	            public String outputFile(TableInfo tableInfo) {
	                // 自定义输入文件名称
	                return projectPath + "/src/main/resources/mapper/" + pc.getModuleName()
	                        + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
	            }
	        });
	        cfg.setFileOutConfigList(focList);
	        mpg.setCfg(cfg);
	        mpg.setTemplate(new TemplateConfig().setXml(null));

	        // 策略配置
	        StrategyConfig strategy = new StrategyConfig();
	        strategy.setNaming(NamingStrategy.underline_to_camel);
	        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
	        strategy.setEntityLombokModel(true);
	        strategy.setRestControllerStyle(true);
	        strategy.setInclude(modulename);
	        strategy.setSuperEntityColumns("id");
	        strategy.setControllerMappingHyphenStyle(true);
	        strategy.setTablePrefix(pc.getModuleName() + "_");
	        mpg.setStrategy(strategy);
	        mpg.setTemplateEngine(new FreemarkerTemplateEngine());
	        mpg.execute();

	}

}

运行后大功告成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值