package ormRex;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List; public class Test
{ private final static String dir = "/Users/caicai/work/space/qingread-api-entity/src/main/java/com/qingread/serial/entity"; public static void main(String[] args) throws IOException
{
File dirFile = new File(dir);
String[] allFileName = dirFile.list();
for (String fileName : allFileName)
{
if (fileName.contains("java") == false) continue;
Path path = Paths.get(dir, fileName);
List<String> alines = Files.readAllLines(path);
List<String> allLine = new ArrayList<>();
String json = "@JSONField(name=\"%s\")";
String dateJson = "@JSONField(name=\"%s\",format=\"yyyy-MM-dd HH:mm:ss\")";
// import com.alibaba.fastjson.annotation.JSONField;
for (String line : alines)
{
if (line.contains(" class "))
{
allLine.add("import com.alibaba.fastjson.annotation.JSONField;");
allLine.add("import java.io.Serializable;");
line = line.substring(, line.length() - );
line += " implements Serializable {";
allLine.add(line);
allLine.add("private static final long serialVersionUID = 1L;");
continue;
}
if (line.contains("private"))
{
// 关键字转下划线
String key = line.substring(line.lastIndexOf(" "), line.length() - );
key = key.trim();
String nKey = "";
for (int i = ; i < key.length(); i++)
{
char c = key.charAt(i);
if (Character.isUpperCase(c))
{
nKey += "_";
nKey += Character.toLowerCase(c);
continue;
}
nKey += c;
}
// 添加json修饰
if (line.contains("Date")) nKey = String.format(dateJson, nKey);
else
nKey = String.format(json, nKey);
allLine.add(nKey);
}
allLine.add(line);
}
PrintWriter pw = new PrintWriter(path.toFile());
for (String str : allLine)
{
pw.println(str);
}
pw.flush();
pw.close();
}
} }

添加fastJson和序列化修饰

java-代码生成器的更多相关文章

  1. 告别无止境的增删改查--Java代码生成器

    转自:http://www.cnblogs.com/zhuYears/archive/2012/02/29/2373491.html 告别无止境的增删改查--Java代码生成器 有感于马上要做个比较大 ...

  2. 【转】20个Java 代码生成器

    From: http://www.cnblogs.com/skyme/archive/2011/12/22/2297592.html 1.1 CodeSmith 一款人气很旺国外的基于模板的dotne ...

  3. Java代码生成器CodeX4J介绍

    用代码生成器生成一些固定的或有规律的代码,可以有效的提高工作效率.我写了个开源的,放在了GitHub上,希望能对有需要的朋友有所帮助. GitHub代码地址https://github.com/jac ...

  4. java代码生成器 快速开发平台 二次开发 外包项目利器 springmvc SSM后台框架源码

    .   权限管理:点开二级菜单进入三级菜单显示 角色(基础权限)和按钮权限      角色(基础权限): 分角色组和角色,独立分配菜单权限和增删改查权限.      按钮权限: 给角色分配按钮权限.2 ...

  5. Java代码生成器多表配置优化,增加自定义实体功能

    目录 前言 多表配置优化 自定义实体 杂谈 结语 前言   最近利用零碎的时间对代码生成器做了进一步更新:优化多表配置模块,增加自定义实体功能,美化单表和多表配置的UI界面,修复用户反馈的若干bug, ...

  6. 这就是Java代码生成器的制作流程

    1. 前言 前几天写了篇关于Mybatis Plus代码生成器的文章,不少同学私下问我这个代码生成器是如何运作的,为什么要用到一些模板引擎,所以今天来说明下代码生成器的流程. 2. 代码生成器的使用场 ...

  7. 告别无止境的增删改查:Java代码生成器

    对于一个比较大的业务系统,我们总是无止境的增加,删除,修改,粘贴,复制,想想总让人产生一种抗拒的心里.那有什么办法可以在正常的开发进度下自动生成一些类,配置文件,或者接口呢?   有感于马上要做个比较 ...

  8. Java代码生成器Easy Code

    EasyCode是基于IntelliJ IDEA开发的代码生成插件,支持自定义任意模板(Java,html,js,xml).只要是与数据库相关的代码都可以通过自定义模板来生成.支持数据库类型与java ...

  9. rapid-generator JAVA代码生成器

    有感于马上要做个比较大的业务系统,想到那无止境的增删改查.粘贴复制,顿时脑后升起一阵凉风.于是想到个找或者写一个Java代码的生成器,这样在正常开发进度下,也能余下更多的时间去做些别的事情. 闲话少说 ...

  10. Java代码生成器加入postgresql数据库、HikariCP连接池、swagger2支持!

    目录 前言 PostgreSql VS MySql HikariCP VS Druid Swagger2 自定义参数配置一览 结语 前言   最近几天又抽时间给代码生成器增加了几个新功能(预计今晚发布 ...

随机推荐

  1. newifi mini将led指示灯引出当gpio使用

    之前买了个newifi mini的路由器,CPU是mt7620a的,有7个led指示灯.现在想要把控制led灯的gpio引出来,方便其他驱动或应用的开发. 一.硬件部分 1.联想路由 现在想要把USB ...

  2. piwik优化之定时任务生成统计数据

    piwik的ui界面,使用起来是无比的慢,让苏南大叔不得不对比wordpress的使用体验.当然了,如果你的服务器足够强大,这些都是小事儿.官方对此给出了一系列的优化建议,大家可以读一下:https: ...

  3. yii 生成条码并上传到图片服务器(zimg)

    工具: 生成条码和二维码 https://github.com/codeitnowin/barcode-generator 配置:

  4. excel技巧--复制带excel侧边的表格

    假设要复制出带excel侧边的表格内容,则使用以下步骤: 1.选择要复制的表格: 2.选择“页面布局”->“标题”选项的“打印”打勾: 3.选择“开始”->复制旁的三角选项:复制为图片: ...

  5. Delphi实现软件中登录用户的操作权限

    数据库结构:包括两张表BaseData和UserRightData,BaseData中是一张基本表,里面不区分用户,UserRightData是用户权限表,结构和BaseData一样,只是多了用户字段 ...

  6. Python——pandas读取JSON数据,xml,html数据(python programming)

  7. Tomcat7启动分析(三)Digester的使用(转载)

    原文 http://tyrion.iteye.com/blog/1912290 前一篇文章里最后看到Bootstrap的main方法最后会调用org.apache.catalina.startup.C ...

  8. Ring3创建事件Ring0设置事件

    应用程序中创建的事件和在内核中创建的事件对象,本质上是同一个东西,在用户模式中,他用句柄表示,在内核模式下,他用KEVENT表示数据结构表示.在应用程序中,所有的内核对象都不会被用户看到,用户看到的知 ...

  9. The type android.support.v4.view.ScrollingView cannot be resolved. It is indirectly referenced from

    前几天另一个项目使用RecyclerView控件,引用类库然后继承一切都很顺序 详细:http://www.cnblogs.com/freexiaoyu/p/5022602.html 今天打算将另一个 ...

  10. [UE4]网络游戏重点思考

    一.哪些逻辑放服务器,哪些逻辑放客户端? 二.它们之间怎么通信?会不会覆盖? 三.服务器应该做哪些验证?(防止外挂)