网站首页 > 文章中心 > 其它

java的代码生成器_java代码生成器原理

作者:小编 更新时间:2023-09-25 12:09:02 浏览量:322人看过

java代码生成器怎么用

①预先定义好模板

最后放出源代码:

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代码生成器用途

主要功能: 你只要设计好数据库 就可以生成java vo

java DAO jsp

servlet

struts-config配置信息

oracle 建表语句 查询语句 等

可生成java struts 架构的完整的源码 包括 增加 删除 修改 查询等功能的源码

①不同的架构,需要不同的生成器

学这个? 网上都有现成的软件,会用就行,使用很简单. 如果是想学开发一个代码生成器的话,我觉得没必要啊.

你把JAVA 语言学会了,真正在开发的时候自然会遇见这个软件,自然就会了

JeeCGBoot低代码开发平台,强大的代码生成器前后端一起生成

今日推荐:JeeCGBoot低代码开发平台

推荐理由:

①.、前后端实现分离架构,通过API调用,实现架构解耦

适用场景

①.、内部办公系统OA

功能特色:

①.、支持微服务SpringCloudAlibab全家桶

①.0、支持单点登录CAS集成方案

①.1、接口统一采用restful接口方式,集成了Swagger-ui在线接口文档

技术架构:

后台环境:

后台开发技术

前端:

微服务架构图:

后台操作图:

支持手机端

以上就是土嘎嘎小编为大家整理的java的代码生成器相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章