使用mybatis-plus自动生成代码以及MybatisX插件

首先,关于这部分的知识,可以先参考官方文档。

MybatisX 快速开发插件

代码生成器配置


Mybatis-Plus生成代码

首先是使用Mybatis-plus根据数据库的连接生成代码:
先导入maven依赖:

<dependency>
  <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.0</version>
</dependency>
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.4.1</version>
</dependency>
<dependency><!-- 模板引擎 -->
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity</artifactId>
<version>1.7</version>

写一个main方法进行生成:

package com.example;

import com.baomidou.mybatisplus.annotation.DbType;
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.NamingStrategy;

public class Main {

    public static void main(String[] args) {
        //创建generator对象
        AutoGenerator autoGenerator = new AutoGenerator();
        //数据源(连接)
        DataSourceConfig config = new DataSourceConfig();
        config.setDbType(DbType.MYSQL);
        config.setUrl("jdbc:mysql://localhost:3306/your-database?useSSL=false&characterEncoding=utf8&serverTimezone=Hongkong");
        config.setUsername("root");
        config.setPassword("123456");
        config.setDriverName("com.mysql.cj.jdbc.Driver");
        autoGenerator.setDataSource(config);
        
        //全局配置(文件的目录)
        GlobalConfig globalConfig = new GlobalConfig();
        globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java");   //设置生成的路径
        globalConfig.setOpen(false);
        globalConfig.setAuthor("dyc");
        globalConfig.setFileOverride(true);  //第二次生成会把第一次生成的覆盖掉
        globalConfig.setServiceName("%sService");  //%s 会自动填充表实体属性(这样生成的就是xxxService)
//        globalConfig.setIdType(IdType.AUTO);  //设置主键策略
        autoGenerator.setGlobalConfig(globalConfig);
        
        //包信息(指定生成代码的包路径)
        PackageConfig packageConfig = new PackageConfig();
        packageConfig.setParent("com.dyc");
        packageConfig.setModuleName("generator3");
        packageConfig.setController("controller");
        packageConfig.setService("service");
        packageConfig.setServiceImpl("service.impl");
        packageConfig.setMapper("mapper");   //记得加@Mapper注解
        packageConfig.setEntity("entity");
        autoGenerator.setPackageInfo(packageConfig);

        //配置策略(指定需要生成哪些表或者排除哪些表)
        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig.setEntityLombokModel(true);   //使用lombok
        //数据库表映射到实体的命名策略
        strategyConfig.setNaming(NamingStrategy.underline_to_camel);
        strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
        //设置生成的是RestController
        strategyConfig.setRestControllerStyle(true);
        //是否生成实体时,生成字段配置 即在字段属性上加上@TableField("")注解
        strategyConfig.setEntityTableFieldAnnotationEnable(true);
//        strategyConfig.setTablePrefix("t_")   //设置table的前缀
        //strategyConfig.setChainModel(true);
        //输入表名!多个英文逗号分割
        strategyConfig.setInclude("table1","table2");
        autoGenerator.setStrategy(strategyConfig);

        autoGenerator.execute();
    }
}

确认好了连接,然后就是执行main方法,就可以看到生成的包了。


点进去就可以看到详情了:
例如UserController:

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author dyc
 * @since 2021-04-05
 */
@RestController
@RequestMapping("/generator3/user")
public class UserController {

}
/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author dyc
 * @since 2021-04-05
 */
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {

}
/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author dyc
 * @since 2021-04-05
 */
public interface DiaryMapper extends BaseMapper<Diary> {

}

不过,当我看了其他人的后,确实配置这里还可以更加简洁:

//全局配置
 GlobalConfig config = new GlobalConfig();
 config.setActiveRecord(true) //是否支持AR模式
	 .setAuthor("weiyunhui") //作者
	 .setOutputDir("D:\\workspace_my\\mp03\\src\\main\\java") 
	//生成路径
	 .setFileOverride(true)//文件覆盖
	 .setServiceName("%sService") //设置生成的service接口名首字母是否为I
	 .setIdType(IdType.AUTO); //主键策略
 
//数据源配置
DataSourceConfig dsConfig = new DataSourceConfig();
	dsConfig.setDbType(DbType.MYSQL)
	.setUrl("jdbc:mysql://localhost:3306/javaEE_0228")
	.setDriverName("com.mysql.jdbc.Driver")
	.setUsername("root")
	.setPassword("1234");
//策略配置
StrategyConfig stConfig = new StrategyConfig();
	stConfig.setCapitalMode(true) // 全局大写命名
	.setDbColumnUnderline(true) //表名 字段名 是否使用下滑线命名
	.setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略
	.setInclude("tbl_employee") //生成的表
	.setTablePrefix("tbl_"); // 表前缀
//包名策略
PackageConfig pkConfig = new PackageConfig();
	pkConfig.setParent("com.atguigu.mp")
	.setController("controller")
	.setEntity("beans")
	.setService("service");
AutoGenerator ag = new AutoGenerator().setGlobalConfig(config)
		 .setDataSource(dsConfig)
		 .setStrategy(stConfig)
		 .setPackageInfo(pkConfig);
	ag.execute();
}

MybatisX插件的使用

以前一直使用的是mybatis,然后用的是free mybatis plugin。现在学了mybatis-plus才知道他有多么的方便。
【注意不要和free mybatis plugin一起用】

  1. XML代码跳转
  2. 生成代码
    这个以前没有发现,原来可以直接就生成实体类mapper和service


在这里插入图片描述

  1. JPA提示
    我自己没怎么练习过用xml写SQL,以前总觉得麻烦,就都是用的注解的方式。
    但是使用xml的话,可以更加方便的写SQL语句,可以使用那些标签语句(主要也是我没怎么练习…)

    我就直接上官方的GIF了:
    例如生成sql:
    在这里插入图片描述
    (其他的就可以直接看官方文档了,这么好用O,当然得自己试试哈)
    就是自己先写一段语句后再按Alt+Insert就会有提示

不过这里也要注意,就是想要出现提示就必须要符合规范:

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
手把手视频详细讲解项目开发全过程,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 课程简介 MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。使用原生的Mybatis编写持久层逻辑时,所需要的代码是比较繁琐的,需要定义Mapper接口和Mapper.xml文件,每一个方法都需要编写对应的sql语句,会存在很多大量的重复工作,使用MP之后,对通用的方法做了高度的抽取,避免了很多重复工作,可以非常快速的实现了单表的各种增、删、改、查操作。除此之外,MP还提供了其他的高级功能,如:枚举、插件、ActiveRecord、SQL注入等。 本课程全面讲解了Mybatis-Plus框架的使用,从快速入门到原理分析再到插件的应用。每一个知识点都有案例进行演示学习,最终通过学习你将全面掌握MP的使用,从而使Mybatis的的开发更加的高效,达到事半功倍的效果。 适应人群 有一定的Java以及Mybatis框架的基础。 从0开始全面讲解Mybatis-Plus框架 l 快速入门 n Mybatis + MP 整合 n Spring + Mybatis + MP 整合 n SpringBoot + Mybatis + MP 整合 n 通用CRUD的全面讲解 n 配置 l 高级用法 n 条件构造器 n Oracle 主键Sequence n 通用枚举n ActiveRecord n 逻辑删除 l 插件 n 执行分析插件 n 性能分析插件 n 乐观锁插件 主讲内容 章节一:快速入门 1. Mybatis-Plus简介 2. 快速入门 3. 通用CRUD 4. 配置 5. 条件构造器 章节二:进阶 1. ActiveRecord 2. Oracle 主键Sequence 3. 插件 章节三:高级应用 1. Sql 注入器 2. 自动填充功能 3. 逻辑删除 4. 通用枚举 5. 代码生成器 6. MybatisX 快速开发插件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值