①预先定义好模板
最后放出源代码:
package com.et.controller.system.createcode;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.et.controller.base.BaseController;
import com.et.util.DelAllFile;
import com.et.util.FileDownload;
import com.et.util.FileZip;
import com.et.util.Freemarker;
import com.et.util.PageData;
import com.et.util.PathUtil;
/**
* 类名称:FreemarkerController
* 创建人:Harries
* @version
*/
@Controller
@RequestMapping(value="/createCode")
public class CreateCodeController extends BaseController {
* 生成代码
@RequestMapping(value="/proCode")
public void proCode(HttpServletResponse response) throws Exception{
PageData pd = new PageData();
pd = this.getPageData();
/* ============================================================================================= */
String packageName = pd.getString("packageName"); //包名 ========1
tabletop = null == tabletop?"":tabletop.toUpperCase(); //表前缀转大写
String zindext = pd.getString("zindex"); //属性总数
int zindex = 0;
if(null != zindext !"".equals(zindext)){
zindex = Integer.parseInt(zindext);
}
for(int i=0; i zindex; i◆◆){
fieldList.add(pd.getString("field"◆i).split(",fh,")); //属性放到集合里面
MapString,Object root = new HashMapString,Object(); //创建数据模型
root.put("fieldList", fieldList);
root.put("packageName", packageName); //包名
root.put("objectName", objectName); //类名
root.put("objectNameLower", objectName.toLowerCase()); //类名(全小写)
root.put("objectNameUpper", objectName.toUpperCase()); //类名(全大写)
root.put("tabletop", tabletop); //表前缀
root.put("nowDate", new Date()); //当前日期
DelAllFile.delFolder(PathUtil.getClasspath()◆"admin/ftl"); //生成代码前,先清空之前生成的代码
String filePath = "admin/ftl/code/"; //存放路径
String ftlPath = "createCode"; //ftl路径
/*生成controller*/
Freemarker.printFile("controllerTemplate.ftl", root, "controller/"◆packageName◆"/"◆objectName.toLowerCase()◆"/"◆objectName◆"Controller.java", filePath, ftlPath);
/*生成service*/
Freemarker.printFile("serviceTemplate.ftl", root, "service/"◆packageName◆"/"◆objectName.toLowerCase()◆"/"◆objectName◆"Service.java", filePath, ftlPath);
/*生成mybatis xml*/
Freemarker.printFile("mapperMysqlTemplate.ftl", root, "mybatis_mysql/"◆packageName◆"/"◆objectName◆"Mapper.xml", filePath, ftlPath);
Freemarker.printFile("mapperOracleTemplate.ftl", root, "mybatis_oracle/"◆packageName◆"/"◆objectName◆"Mapper.xml", filePath, ftlPath);
/*生成SQL脚本*/
Freemarker.printFile("mysql_SQL_Template.ftl", root, "mysql数据库脚本/"◆tabletop◆objectName.toUpperCase()◆".sql", filePath, ftlPath);
Freemarker.printFile("oracle_SQL_Template.ftl", root, "oracle数据库脚本/"◆tabletop◆objectName.toUpperCase()◆".sql", filePath, ftlPath);
/*生成jsp页面*/
Freemarker.printFile("jsp_list_Template.ftl", root, "jsp/"◆packageName◆"/"◆objectName.toLowerCase()◆"/"◆objectName.toLowerCase()◆"_list.jsp", filePath, ftlPath);
Freemarker.printFile("jsp_edit_Template.ftl", root, "jsp/"◆packageName◆"/"◆objectName.toLowerCase()◆"/"◆objectName.toLowerCase()◆"_edit.jsp", filePath, ftlPath);
/*生成说明文档*/
Freemarker.printFile("docTemplate.ftl", root, "说明.doc", filePath, ftlPath);
//this.print("oracle_SQL_Template.ftl", root); 控制台打印
/*生成的全部代码压缩成zip文件*/
FileZip.zip(PathUtil.getClasspath()◆"admin/ftl/code", PathUtil.getClasspath()◆"admin/ftl/code.zip");
FileDownload.fileDownload(response, PathUtil.getClasspath()◆"admin/ftl/code.zip", "code.zip");
主要功能: 你只要设计好数据库 就可以生成java vo
java DAO jsp
servlet
struts-config配置信息
oracle 建表语句 查询语句 等
可生成java struts 架构的完整的源码 包括 增加 删除 修改 查询等功能的源码
但
①不同的架构,需要不同的生成器
学这个? 网上都有现成的软件,会用就行,使用很简单. 如果是想学开发一个代码生成器的话,我觉得没必要啊.
你把JAVA 语言学会了,真正在开发的时候自然会遇见这个软件,自然就会了
今日推荐:JeeCGBoot低代码开发平台
推荐理由:
①.、前后端实现分离架构,通过API调用,实现架构解耦
适用场景
①.、内部办公系统OA
功能特色:
①.、支持微服务SpringCloudAlibab全家桶
①.0、支持单点登录CAS集成方案
①.1、接口统一采用restful接口方式,集成了Swagger-ui在线接口文档
技术架构:
后台环境:
后台开发技术
前端:
微服务架构图:
后台操作图:
支持手机端
以上就是土嘎嘎小编为大家整理的java的代码生成器相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!