前言
在日常的软件开发中,程序员往往需要花费大量的时间写CRUD,不仅枯燥效率低,而且每个人的代码风格不统一。MyBatis-Plus 代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块及前端页面的代码,极大的提升了开发效率。
项目介绍
本项目将以springboot用演示,前端使用freemaker,数据库持久层用mybatis(考虑到mybatis的使用还是最普遍的,就没有用jpa和mybatisplus),通过Velocity模板引擎配置各模块的文件模板,通过mybatis-plus代码生成器连接mysql,用商品表为例生成各模块的代码和前端页面。(本项目只演示分页查询和导出功能)。
本项目所有代码和脚本都能都文末找到地址。
实战
数据库脚本
创建一张商品表test_goods
1 | sql复制代码CREATE TABLE `test_goods` ( |
maven依赖
1 | xml复制代码 <dependencies> |
配置文件
1 | yml复制代码mybatis: |
模板文件
本项目中,所有模块的文件都是用Velocity模板引擎生成,这里简单介绍下Velocity的语法,在Velocity中用表示变量,例如:{}表示变量,例如:表示变量,例如:{table.entityName} 表示实体名,field.name表示字段名,我们在AutoGenerator代码生成器里定义的全局变量{field.name} 表示字段名,我们在AutoGenerator代码生成器里定义的全局变量 field.name表示字段名,我们在AutoGenerator代码生成器里定义的全局变量{author}、{date} 表示作者,日期等。在Velocity中用#表示语法,例如 #foreach(field in ${table.fields}) #end遍历表字段。下面演示几个类、前端文件、xml文件的模板文件
实体类模板(entity.java.vm)
1 | java复制代码package ${package.Entity}; |
Controller模板(controller.java.vm)
1 | java复制代码package ${package.Controller}; |
Service类模板(service.java.vm)
1 | java复制代码package ${package.Service}; |
Dao类模板(dao.java.vm)
1 | java复制代码package ${package.Mapper}; |
Mapper.xml模板(mapper.xml.vm)
1 | xml复制代码<?xml version="1.0" encoding="UTF-8"?> |
前端页面list.ftl模板(list.ftl.vm)
1 | html复制代码<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
代码生成器
1 | java复制代码package com.lzn.mybatisplus.codegenerator; |
执行代码生成器的Main方法
执行代码后,在对应的目录自动生成了文件
启动项目
并访问列表页路径 http://localhost:8080/admin/goods/list
点击导出按钮(由于篇幅有限,导出的视图对象,导出service类和aop切面实现本文没有阐述,各位可自行下载代码查看)
总结
本文为项目自动生成前后端代码提供了思路:我们可以为项目的增删改查业务编写一套规范的代码,以此编写代码模板,后续通过代码生成器,通过数据库的一张表可快速生成前后端代码,提高项目组的开发效率。
代码
本文转载自: 掘金