展开全部

zip包,然后62616964757a686964616fe78988e69d8331333363396335自动下载下来

1.预先定义好模板

2.界面输入相关参数

3.解析模板生成代码并下载

最后放出源代码:

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

* 创建时间:2015年1月12日

* @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

String objectName = pd.getString(“objectName”); //类名 ========2

String tabletop = pd.getString(“tabletop”); //表前缀 ========3

tabletop = null == tabletop?””:tabletop.toUpperCase(); //表前缀转大写

String zindext = pd.getString(“zindex”); //属性总数

int zindex = 0;

if(null != zindext && !””.equals(zindext)){

zindex = Integer.parseInt(zindext);

}

List fieldList = new ArrayList(); //属性集合 ========4

for(int i=0; i< zindex; i++){

fieldList.add(pd.getString(“field”+i).split(“,fh,”)); //属性放到集合里面

}

Map root = new HashMap(); //创建数据模型

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代码生成器_java代码生成器怎么用相关推荐

  1. mysql java 代码生成器_java代码生成器

    新建项目时,创建Dao.Service.ServiceImpl.Po过于繁琐,所以使用模板工具写了一个代码生成器. 使用技术:mysql+velocity+springboot 项目github:ht ...

  2. java代码生成_Java代码生成器CodeX4J介绍

    用代码生成器生成一些固定的或有规律的代码,可以有效的提高工作效率.我写了个开源的,放在了GitHub上,希望能对有需要的朋友有所帮助. 先做一下简单介绍: CodeX4J是一款开源的Java代码生成器 ...

  3. 基于JAVA开发的全能代码生成器 - JustGen代码生成器

    基于JAVA开发的全能代码生成器 - JustGen代码生成器 一直以来总是在代码搬运,虽然网上好多代码生成器,但是基本上都是针对项目的,项目什么样,代码生成器就什么样,项目调整,通样代码生成器也要调 ...

  4. 语法制导的三地址代码生成程序_ts-creator, 一个生成代码生成器的代码生成器

    简介 ts-creator 是一个由 TypeScript 代码生成 TypeScript 代码生成器的代码生成器,主要为TypeScript 插件作者,构建公司开发流程中需要用到代码生成的开发者等提 ...

  5. 【源码+教程】Java课设项目_12款最热最新Java游戏项目_Java游戏开发_Java小游戏_飞翔的小鸟_王者荣耀_超级玛丽_推箱子_黄金矿工_贪吃蛇

    马上就要期末了,同学们课设做的如何了呢?本篇为大家带来了12款热门Java小游戏项目的源码和教程,助力大家顺利迎接暑假![源码+教程]Java课设项目_12款最热最新Java游戏项目_Java游戏开发 ...

  6. 黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三)

    黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三) 1.1 异常概述与异常体系结构 1.2 JVM遇到异常时的默认处理方案 1.3 异常处理 1.4 异常处理之try--catch ...

  7. java mybatis 代码生成器_Java MyBatis-Plus 代码生成器

    pom.xml的依赖 org.projectlombok lombok true com.baomidou mybatis-plus-boot-starter 3.3.2 mysql mysql-co ...

  8. 【struts2+hibernate+spring项目实战】java读写实现代码生成器(ssh)

    一.概述 开发阶段80%以上的模块都具有基本增删改查功能,反反复复的制作不仅效率低下,而且容易出错,使用代码生成器自动生成代码,只需要精品的开发出代码生成器,后期代码开发效率将直线上升. 代码生成器的 ...

  9. SpringMVC mybatis SSM 多数据源 java redis shiro 代码生成器

    A代码编辑器,在线模版编辑,仿开发工具编辑器,pdf在线预览,文件转换编码 B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 , ...

最新文章

  1. Pci设备驱动:设备枚举
  2. 运维中心建设--服务台建设一期
  3. Cache超清晰逻辑详解----不一致性(待更)
  4. OSPF动态路由协议入门简介
  5. oracle查询可更新结果集,jdbc 可更新结果集
  6. 利用机器学习进行金融数据风险评估
  7. restful是什么
  8. Python爬虫实战03:用Selenium模拟浏览器爬取淘宝美食
  9. 2021-2025年中国电动多用途越野车(UTV)行业市场供需与战略研究报告
  10. signal(SIGCLD,SIG_IGN)
  11. SPSS的双变量相关分析
  12. 2019北航计算机961考研经验总结
  13. 微信小程序html5音频,微信小程序 audio音频播放详解及实例
  14. USB3.0:VL817Q7-C0的LAYOUT指南
  15. 算法提高课-图论-欧拉回路和欧拉路径-AcWing 1123. 铲雪车:披着欧拉回路外衣的小学数学题
  16. php后端switch,详解PHP中php switch的方法实例_后端开发
  17. 如何将wps中的表格转为图片,并设置较高的dpi
  18. 网络原理实验4 路由协议的配置
  19. 哈密顿系统_Matlab
  20. PLC应用中单按键(自复位)控制启动与停止

热门文章

  1. php中购物车功能,php如何实现购物车功能
  2. Android笔记 隐式意图demo
  3. 关于Python生成器的一个小问题(StopIteration)
  4. Fibonacci数列整除性质的组合证明
  5. python实现微信小游戏打飞机代码
  6. SQL Server where语句使用举例
  7. 鲨鱼 抓包 oracle,抓包工具wireshark的操作使用
  8. java 阻塞 直到完成_完成所有提交的任务后关闭Java执行程序而不会阻塞
  9. 为什么谐振时电抗为0_高压直流输电(LCC-HVDC 和 MMC-HVDC)中平波电抗器的作用和选择策略...
  10. 如何从零搭建一个hexo博客网站01