⚡效率工具(第三期)⚡ - 你还在手写CRUD吗,EasyCode 解君愁

1,374 阅读3分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

1. 前言

代码不止诗和远方,还有眼前的 CRUD

毕业前,我以为 Coding 的我是这样的:“今天的任务是性能优化,明天的任务是 JVM 调优,昨天领导又夸我代码写得好了,我可真是个小天才”

然而事实是,上面这些是事后的补救手段,在编程阶段,就应该养成良好的习惯,规避上面的问题,以及写不完的 CRUD

通常,基于一家公司的基础框架来写 CRUD 的话相似性都会很高,这就有一种“我写增删查改要写吐了”的错觉,对于 Mybatis 来说,还有Mybatis Generator 来生成一下代码,对于使用 JPA 或者其他的小伙伴,虽然 Dao 不用写了,但 Service、ServiceImpl、Controller 你还是要写的啊

为了解决上述的问题,我东翻西找,找到了一款国人开发的开源 IDEA 插件 EasyCode,其底层逻辑其实很简单,就是根据模板来生成代码,这意味着你可以根据自定义模板来适应任意的姿势

作为一个想每天早点下班的程序员,把 CRUD 的时间省出来,它不香吗,本就根据 EasyCode 自带的 Mybatis 模板来生成一次代码,带大家进一步了解这个插件的便利性


2. EasyCode 的使用

小节2的代码已上传到 GitHub 的个人 Demo 项目,本小节代码路径 /wzed-demo/002-tools-demo/easycode-demo

由于使用的是 EasyCode 自带的模板,所以依赖也是按照模板里面的代码来

本文涉及的依赖以及版本

  • MySQL 5.7

  • IDEA 2021.2

  • SpringBoot 2.5.4

  • 其他依赖见 Pom.xml


2.1 项目准备

首先建一个空的项目


然后引入需要的依赖,由于我建项目的时候继承了 spring-boot-starter-parent 2.5.4 ,所以只有 Mybatis 的依赖需要显式的指定版本

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<!-- Mybatis 依赖配置 -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.4</version>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-commons</artifactId>
</dependency>


2.2 表结构准备

万能的学生表1.0,最喜欢用学生表了

CREATE TABLE `student` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `name` varchar(50) NOT NULL COMMENT '姓名',
  `age` int(11) NOT NULL COMMENT '年龄',
  PRIMARY KEY (`id`)
)

2.3 插件的使用

首先为 IDEA 安装插件,就是这玩意


然后为IDEA 添加数据源


重点来了,右键表,打开生成窗口


此时只需要选择正确的包名,正确的磁盘路径,再勾选需要生成的文件,打上统一配置、禁止提示,再按 OK 即可


添加 Mybatis 配置类 MybatisConfig,用于扫描 Dao

@Configuration
@MapperScan("cn.wzed.dao")
public class MybatisConfig {
}

配置文件 application.yml 中添加扫描 Mapper.xml 的路径,以及数据源

server:
  port: 9002

mybatis:
  mapper-locations: classpath:mapper/**/**.xml
  # 开启后控制台会打印 SQL 日志

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/demo
    username: root
    password: 123456


添加启动类,启动项目并测试生成的接口是否正常

完美成功,上次看到这么完美的例子还是在上次


3. 瞄一下模板

EasyCode 的所有配置都集成在其他设置里,这里可以设置作者名称、模板内容,与数据库的值映射关系等等等等,可视化操作,妈妈再也不用担心我乱生成代码了


4. 写在后面

代码生成的工具有很多选择,但 EasyCode 与 IDEA 的集成,可视化的操作,模板与变量的配合,能适应各种复杂的生成场景,而默认的内置模板在我们验证一些用例的时候也能大大提高效率

所谓时间就是金钱,你看了我这篇文章,我帮你节省了时间,换个角度来看我这是在救你的命啊!点赞收藏关注不过分把?