该项目为javaWEB项目通用代码生成器,根据数据库表和自定义代码模板生成相应的jsp,js,java文件,生成到指定路径下,javaweb项目开发利器;

项目开源地址:https://gitee.com/okrs.cn/CodeGenerator

代码生成器:
该项目为代码生成器 基于Apache Velocity的 Java模板引擎
base_build文件夹为最原始代码
为整理后的版本
执行:
com.mmk.BaseApplication.java或生成jar包:run Maven intall

访问路径:http://localhost:10001/codeUI/index.html

不可用ip 访问

登录界面输入的是作者

模板加载地址:

resources/static/template.json

添加模板地址:
src/main/resources/

com.mmk.code.common.PropertyNameTools.java 设置表初始加载的时候数据库字段类型对应的实体字段类型

#foreach($field in $fieldList)
 #if($!{velocityCount}==$!{fieldList.size()})//当循环到最后一个时
  " s.${field.columnName}"+
#else
  " s.${field.columnName},"+
#end 
   #end;
   
   $fieldList 字段列表
    ${field.comment} 字段描述
${field.columnName}数据库字段名称
${field.inputType} 数据库类型
${field.validate}
${field.field} 实体字段名称
${field.fieldUp} 实体字段名称大写
${field.type} 实体字段类型

$field.findBy) 启用特殊方法findBy

以上对应字段值设置
\resources\static\codeUI\app\store
${field.inputType}=="input"
#if($field.validate=="mobile")lay-verify="phone"#elseif(!$field.nullable)lay-verify="required"#end
#if( $field.type == "Date")

${model.packageName}.${model.modulePackage}
${model.model}大写 实体名字
${model.modelL}首字母小写 实体名字
${model.comment}

*@author ${model.author} ${date}

${model.tableName} 数据库名字

表单验证:
 <input type="text"  name="${field.field}" placeholder="请输入${field.comment}" autocomplete="off"  data-rule="${field.comment};required;#if(${field.validate})${field.validate};" data-msg="不符合规则" #else " #end value="${${model.modelL}.${field.field}}"/>

生成:
 <input type="text"  name="type" placeholder="请输入违规类型,0-一般,1-严重" autocomplete="off"  data-rule="违规类型,0-一般,1-严重;required;number;" data-msg="不符合规则"  value="${cbViolateNotice.type}"/>

sql拼接
#if($field.type=="String")
#if($field.matchType == 'any')
        sql.append(" and s.name like '%").append(search_name).append("%'");
#elseif($field.matchType == 'eq')
        if(StringUtils.isNotBlank(condition.get${field.fieldUp}())){
            sb.append(" and ${field.columnName} = ?$!{velocityCount} ");
            params.put($!{velocityCount},condition.get${field.fieldUp}());
        }
#elseif($field.matchType == 'left')
        if(StringUtils.isNotBlank(condition.get${field.fieldUp}())){
            sb.append(" and ${field.columnName} like ?$!{velocityCount} ");
            params.put($!{velocityCount},condition.get${field.fieldUp}()+"%");
        }
#elseif($field.matchType == 'right')
        if(StringUtils.isNotBlank(condition.get${field.fieldUp}())){
            sb.append(" and ${field.columnName} like ?$!{velocityCount} ");
            params.put($!{velocityCount},"%"+condition.get${field.fieldUp}());
        }
#elseif($field.matchType == 'dateRange')
        if(condition.get${field.fieldUp}Begin()!=null){
            sb.append(" and ${field.columnName} >= ?$!{velocityCount} ");
            params.put($!{velocityCount},condition.get${field.fieldUp}Begin());
        }
        if(condition.get${field.fieldUp}End()!=null){
            sb.append(" and ${field.columnName} >= ?$!{velocityCount} ");
            params.put($!{velocityCount},condition.get${field.fieldUp}End());
        }
#end
#else
#if($field.matchType != 'none')
        if(condition.get${field.fieldUp}()!=null){
            sb.append(" and ${field.columnName} = ?$!{velocityCount} ");
            params.put($!{velocityCount},condition.get${field.fieldUp}());
        }
#end
#end

模拟文件结构不能更改,删除其中的文件会报错

注意:
1、生成代码的时候会直接覆盖
2、maven 生成的jar包 会存在乱码问题:解决方式:命令行中执行  java -Dfile.encoding=utf-8 -jar APA_BUILD-1.0.0.jar

-------------------------------------------------------------------

1、生成代码的时候会直接覆盖
2、必须设计表的时候
字段填写注释
表上填写注释
3、数据库中设计必须有:id(自增),code(uuid,标识),create_time,create_code,update_code,update_time,del_flag(逻辑删除,1)

-------------------------------------------------------------

javaweb代码生成器,专注于javaweb项通用目的代码生成器的更多相关文章

  1. Java程序员的两项通用能力

    工作这几年来,经历了很多.从小白到中级(手机里有一款叫中国象棋的游戏,里面给对弈中电脑水平分为小白.菜鸟.新手.入门.初级.中级.高级.大师.特级大师,编程我暂且按照这样来区分). 学校教给我的是从小 ...

  2. JavaWeb学习总结(一)——JavaWeb开发入门

    http://www.cnblogs.com/xdp-gacl/p/3729033.html 只为成功找方法,不为失败找借口! JavaWeb学习总结(一)--JavaWeb开发入门 一.基本概念 1 ...

  3. JavaWeb开发学习(一)-JavaWeb开发概述

    1.Web相关概念 Web程序也就是一般所说的网站,由服务器.客户端浏览器以及网络组成.Web程序的好处是使用简单,不需要安装.学习,有一台电脑.一根网线就可以使用.Web程序不是一般意义上的网站.网 ...

  4. JavaWeb学习总结-01 JavaWeb开发入门

    一 基本概念 1 Web开发的相关知识 Web,表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 静态web资源(如html 页面): ...

  5. JavaWeb学习总结(一)——JavaWeb开发入门(转载)

    转载自http://www.cnblogs.com/xdp-gacl/p/3729033.html感谢孤傲苍狼的分享. 一.基本概念 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意 ...

  6. JavaWeb学习总结(一)——JavaWeb开发入门(转)

    转载自 http://www.cnblogs.com/xdp-gacl/p/3729033.html 一.基本概念 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示In ...

  7. JavaWeb(一)JavaWeb应用的概念

    JavaWeb应用的概念 在Sun的Java Servlet规范中,对Java Web应用作了这样定义:"Java Web应用由一组Servlet.HTML页.类.以及其它可以被绑定的资源构 ...

  8. JavaWeb学习 (二十)————JavaWeb的两种开发模式

    一.JSP+JavaBean开发模式 1.1.jsp+javabean开发模式架构 jsp+javabean开发模式的架构图如下图(图1-1)所示

  9. JavaWeb笔记——三大组件之监听器

    1 JavaWeb监听器概述 在JavaWeb被监听的事件源为:ServletContext.HttpSession.ServletRequest,即三大域对象. l  监听域对象“创建”与“销毁”的 ...

随机推荐

  1. header 头各种类型文件下载

    function down_file($url,$type='application/zip'){     header("Cache-Control: public");     ...

  2. Selenium常用API用法示例集----下拉框、文本域及富文本框、弹窗、JS、frame、文件上传和下载

    元素识别方法.一组元素定位.鼠标操作.多窗口处理.下拉框.文本域及富文本框.弹窗.JS.frame.文件上传和下载 元素识别方法: driver.find_element_by_id() driver ...

  3. WeakHashMap回收时机结合JVM 虚拟机GC的一些理解

    一直很想知道WeakHashMap的使用场景,想来想去只能用在高速缓存中,而且缓存的数据还不是特别重要,因为key(key不存在被引用的时候)随时会被回收 所以研究了一下WeakHashMap的回收时 ...

  4. 为什么在Python里推荐使用多进程而不是多线程

    转载  http://bbs.51cto.com/thread-1349105-1.html 最近在看Python的多线程,经常我们会听到老手说:"Python下多线程是鸡肋,推荐使用多进程 ...

  5. HeapAlloc,GlobalAlloc,LocalAlloc,VirtualAlloc,malloc,new的异同

    1. 首先我们来看HeapAlloc: MSDN上的解释为:HeapALloc是从堆上分配一块内存,且分配的内存是不可移动的(即如果没有连续的空间能满足分配的大小,程序不能将其他零散的 空间利用起来, ...

  6. FusionCharts封装-单系列图

    ColumnChart.java: /** * @Title:ColumnChart.java * @Package:com.fusionchart.model * @Description:柱形图 ...

  7. CSS3的[att$=val]选择器

    1.实例源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...

  8. java重写和重载

    方法的重载: 在一个类中的两个或两个以上的方法,他们方法名相同但是参数列表不同,这种方式称为方法的重载,方法的重载是实现多态性的方式之一. 参数列表不同指的是参数的个数不同或相同的个数但顺序不同或者类 ...

  9. VxWorks 符号表

    符号表初始化           符号表用于建立符号名称.类型和值之间的关系.其中,名称为null结尾的任意字符串:类型为标识各种符号的整数:值为一个字符指针.符号表主要用来作为目标模块加载的基础,但 ...

  10. 芝麻HTTP: Python爬虫利器之Requests库的用法

    前言 之前我们用了 urllib 库,这个作为入门的工具还是不错的,对了解一些爬虫的基本理念,掌握爬虫爬取的流程有所帮助.入门之后,我们就需要学习一些更加高级的内容和工具来方便我们的爬取.那么这一节来 ...