用FreeMaker和模板生成文件的方法
来源:互联网 发布:太子奶集团销售数据 编辑:程序博客网 时间:2024/06/17 04:49
FreeMarker是用Java开发的模板引擎,利用这个类库可以利用自定义的模板文件(*.ftl文本文件)生成一个新的文本文件。例如,利用数据库中的表,自动生成DAO文件和与之对应的Domain文件,就可以用FreeMaker来做。
首先,从http://freemarker.org/下载FreeMaker,下载的地址:http://sourceforge.net/projects/freemarker/files/freemarker/2.3.20/freemarker-2.3.20.tar.gz/download
下载的压缩文件中freemaker.jar就是需要的类库文件。
新建一个Java Application项目,将freemaker.jar加入项目的库中。
建立一个模板文件,例如在E:\temp下新建dao.ftl,内容如下:
private static ${domainname} mapData(ResultSet resultSet) throws SQLException {
return new ${domainname}(
resultSet.get${idtype}("id"),
<#assign index = 0>
<#list fieldnames as field>
resultSet.get${fieldtypes[field]}("${field}")<#if field_has_next>,</#if>
<#assign index = index+1>
</#list>
);
}
新建一个Java类:DAOGenerator.java
public class DAOGenerator {
public static void generate() throws Exception {
freemarker.template.Configuration cfg;
cfg = new freemarker.template.Configuration();
cfg.setDirectoryForTemplateLoading(new File("e:/temp"));
Map root = new HashMap();
List<String> fieldnames = new ArrayList<>();
Map fieldtypes = new HashMap();
root.put("domainname", "User");
root.put("idtype", "Long");
fieldnames.add("username");
fieldtypes.put("username","String");
fieldnames.add("password");
fieldtypes.put("password","String");
fieldnames.add("email");
fieldtypes.put("email","String");
fieldnames.add("age");
fieldtypes.put("age","Short");
root.put("fieldnames", fieldnames);
root.put("fieldtypes", fieldtypes);
String path = "E:/temp/dao/UserDao.java";
new File(path).delete();
Template t = getCfg().getTemplate("dao.ftl");
Writer out = new OutputStreamWriter(new FileOutputStream(path), "UTF-8");
t.process(root, out);
System.out.println("Finish the work");
}
}
得到的结果:
private static User mapData(ResultSet resultSet) throws SQLException {
return new User(
resultSet.getLong("id"),
resultSet.getString("username"),
resultSet.getString("password"),
resultSet.getString("email"),
resultSet.getShort("age")
);
}
- 用FreeMaker和模板生成文件的方法
- 使用freemaker和itext从html模板生成pdf文件
- 生成word的两种方法 freemaker和POI
- freemaker生成word 和 excel
- Java+freemaker+xml生成word模板
- 使用freemaker模板生成word文档
- Freemaker 模板生成html文件带barcode4j条形码并转PDF
- 利用freemaker和ftl文件导出word带不开的问题
- asp.net中利用XML描述文件和Excel模板相结合的方法生成Excel报表
- CodeSmith将模板文件批量生成文件的方法
- FreeMaker解析Word模板(含图片)生成Word文档
- FreeMaker解析Word模板(含图片)生成Word文档
- jfinal和freemaker的分页
- ThinkPHP生成HTML静态文件和模板缓存的过程
- 用C#生成Excel文件的方法和Excel.dll组件生成的方法
- 用C#生成Excel文件的方法和Excel.dll组件生成的方法 zt
- 用C#生成Excel文件的方法和Excel.dll组件生成的方法
- 用C#生成Excel文件的方法和Excel.dll组件生成的方法
- 使用VS2010 C#开发ActiveX控件
- C++构造函数中的初始化
- js中的闭包
- OC-内存管理
- 【暮色天】坚守利润 别想多了(1.23)
- 用FreeMaker和模板生成文件的方法
- Hadoop作业调优参数整理
- 深入理解PHP:高级技巧、面向对象与核心技术
- 去哪儿累计亏损1.5亿 或因给员工发放期权
- ios本地通知和远程通知详解-------(注:文章最后有个php服务端实现DEMO)
- Oracle 11g数据库相关操作
- 比手劲
- Deformable Part Model的学习
- 从零开始学习OpenGL ES之一 – 基本概念