Easy Code是IDEA的一个插件,可以直接对数据的表生成entity,controller,service,dao,mapper,无需任何编码,简单而强大。

一、安装配置

Ctrl+Alt+S(可能和 QQ 最近截屏录像功能冲突)打开Settings → 选择Plugins → 安装Easy Code插件 → 重启IDE → 重新来到Settings找到Other Settings下的Easy Code进行如下修改:

补充:
配置@Mapper避免后期手动添加:

二、使用演示

在此之前先建立SpringBoot项目~

连接数据库:
1
2

测试链接报错及解决:
3
4

Easy Code逆向工程:
5
6

目录结构展示(对应的文件夹不存在会提示让你点击自动创建):
7

三、项目运行

(1)配置yml

server:
  port: 8080

spring:
  datasource:
    name: mysql
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/booksystem?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=UTC
    username: root
    password: 123456

  thymeleaf:
    cache: false
    encoding: UTF-8
    mode: HTML
    suffix: .html
    prefix: classpath:/templates/

mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: cn.ctx.booksystem.entity

(2)项目测试

四、差异化对比

1.Controller层
默认生成@RestController=@Controller+@ResponseBody(所以上图那个是白加的QAQ)
如果需要页面跳转则用ModelAndView

    @GetMapping("test")
    public ModelAndView test(){
        ModelAndView mv = new ModelAndView("test");//跳转到test.html页面
        return mv;
    }

对于各种页面的跳转一般专门写一个PageController来处理:

@Controller
public class PageController {
    @RequestMapping("{module}/{url}.html")
    public String module(@PathVariable("module") String module, @PathVariable("url") String url){
        return module + "/" + url;
    }
}

还有就是服务对象装载是用@Resource,一般我Controller层用的是@Autowired,而Service才是用@Resource
这里特意去回顾了一下知识点:

@Autowired VS @Resource

  • 依赖识别方式:@Autowired默认是byType 可以使用 @Qualifier 指定 Name@Resource 默认是 ByName 如果找不到则 ByType
  • 适用对象:@Autowired可以对构造器、方法、参数、字段使用,@Resource可以对方法、字段使用
  • 提供方:@AutowiredSpring提供的,@ResourceJSR-250提供的
  • 个人见解:为什么IDEA只对@Autowired警告,却对@Resource视而不见?可能是因为@AutowiredSpring提供的,它是特定IOC提供的特定注解,一旦换用了其他的IOC框架,是不能够支持注入的。而@ResourceJSR-250提供的,它是Java标准,我们使用的IOC容器应当去兼容它,这样即使更换容器,也可以正常工作。

2.Entity层
int映射成Integer,之前是我不规范了。

3.Mapper层
采用ResultMap而不是ResultType,可能是为了方便修改后续如果数据库更改属性,造成字段不一样问题,同时也省去了很长的字段映射,虽然说Mybatis配置中可以简化。

4.其他
都有友好的注释,确实节省了很多。
不过比起Mybatis的逆向工程,代码量少了很多,但是会更加规范。

Last modification:June 9th, 2020 at 11:25 pm
喵ฅฅ