这不是废话吗?本来Freemarker就是一模板引擎,有啥不可以的。不过有闲的蛋疼的嫌疑。
拿个简单运用吧。假如有张表,id号是从1到100,做个循环把名字输出来。
1. 废话不多说,先写模板文件
select * from ktsys.sys_report_file where fi_id=${key}
2. 还能说啥,写java文件处理呗。
思路很简单嘛,先解析数据源,取得连接,然后找这个sql.ftl文件呗。我放在了src下面,所以不管三七二十一,用代码找到它,然后写数据模型,并输出。此时sql.ftl文件的值得到填充,那好呗,我拿这条sql语句用JDBC的方式处理就ok了。
代码说话:
package com.victorysoft.trigger;
import java.io.File;
import java.io.IOException;
import java.io.StringWriter;
import java.net.URL;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import victorysoft.DAO.Result;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
public class ActionServletFM {
private Configuration freemarker_cfg = null;
public Configuration getFreeMarkerCFG() throws IOException {
if (null == freemarker_cfg) {
freemarker_cfg = new Configuration();
URL u = CreateTriggerTemplate.class.getResource("/");
freemarker_cfg
.setDirectoryForTemplateLoading(new File(u.getPath()));
freemarker_cfg.setEncoding(Locale.CHINA, "UTF-8");
}
return freemarker_cfg;
}
public String geneHtmlFile(Template t, Map<String, String> root) {
try {
StringWriter writer = new StringWriter();
t.process(root, writer);
return writer.getBuffer().toString();
} catch (TemplateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return "";
}
@SuppressWarnings("unchecked")
public static void main(String[] args) throws IOException {
new ClassPathXmlApplicationContext("proxoolData.xml");
ActionServletFM test = new ActionServletFM();
Result result2 = new Result("YTH");
try {
Template t = test.getFreeMarkerCFG().getTemplate("sql.ftl");
Map<String, String> root=new HashMap<String, String>();
for (int i = 1; i < 5; i++) {
root.put("key", ""+i);
String str=test.geneHtmlFile(t,root);
result2.executeQuery(str.replaceAll("\r\n", ""));
System.out.println(result2.getFieldValue(0, 2)+":::"+str.replaceAll("\r\n", ""));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
URL u = CreateTriggerTemplate.class.getResource("/");这个了,取得class当前目录,由于我把ftl文件就放src下了,所以就在这下面找就ok啦。其它废物代码不扯了。很easy!
我真怀疑有点蛋疼,但是了,这里想说明的是,freemarker是很强大的。反正是模板文件,不受任何其它文件语法影响。符合自己的语法规则就行,可以用于html、jsp、sql.多的是,可以做模板定制嘛!!!!!!
分享到:
相关推荐
- graduation.sql文件是数据库脚本。eova压缩包存放的是教务管 理员后台。 - 教务管理员是在eova后台登录的,在完用户还需要在对 应的教师信息/学生信息界面完善信息才能生效。 - 学生账号/密码:000000/000000 ...
应用内置MySQL数据库脚本,程序第一次启动后会出现安装过程,根据要求填写系统会自动安装,默认数据库名称为webfast4dev, 数据库参数配置及外部文件管理目录默认指定为d:/webfast/demo4dev/appdata。若该目录不存在...
1. 在mysql(默认为mysql8)中创建名为`crm`的数据库,并执行源码根目录的`crm.sql`脚本生成数据库表以及数据 2. 将项目源码导入idea中,指定项目的jdk版本为jdk8或以上,并标记为maven项目,下载所需依赖 3. 修改`...
文件类型包括237个Java源代码文件、200个PNG图片文件、180个GIF图片文件、150个FreeMarker模板文件、85个JavaScript脚本文件、56个CSS样式文件、39个HTML页面文件、21个JPG图片文件、10个DS_Store文件和8个TXT文本...
graduation.sql文件是数据库脚本。eova压缩包存放的是教务管理员后台。 教务管理员是在eova后台登录的,在eova配置完用户还需要在对应的教师信息/学生信息界面完善信息才能生效。 学生账号/密码:000000/000000 教师...
SQL支持脚本语言(强大脚本语言,freemarker语法)。支持与hibernate轻量级无缝集成。支持自动事务处理和手动事务处理。性能优于Mybatis 比Mybatis更简单易用。SQL 支持注解方式。SQL 支持独立文件方式,SQL文件的...
文件类型包括1167个JavaScript脚本文件、1021个PNG图片文件、233个Java源代码文件、139个CSS样式文件、131个FreeMarker模板文件、50个XML配置文件、13个HTML页面文件、11个Markdown文档、10个SQL文件、10个GIF图片...
毕业设计管理系统可以分为五个模块:...graduation.sql文件是数据库脚本。eova压缩包存放的是教务管理员后台。 教务管理员是在eova后台登录的,在eova配置完用户还需要在对应的教师信息/学生信息界面完善信息才能生效。
graduation.sql文件是数据库脚本。eova压缩包存放的是教务管理员后台。 教务管理员是在eova后台登录的,在eova配置完用户还需要在对应的教师信息/学生信息界面完善信息才能生效。 学生账号/密码:000000/000000 教师...
1 TOMCAT安装路径中请不要包含中文字符,否则程序将不能正常运行. 目录及文件: debug\document PDM及数据库脚本。 作者留言: 本程序是作者学习struts spring hibernate构架后为了练习开发的一个小程序。开发此...
- graduation.sql文件是数据库脚本。eova压缩包存放的是教务管理员后台。 - 教务管理员是在eova后台登录的,在eova配置完用户还需要在对应的教师信息/学生信息界面完善信息才能生效。 - 学生账号/密码:000000/...
那么我们能不能整理一个基础项目基础模板出来,就这样adminstore诞生了。adminstore整合了spring,hibernate,shiro,discover等框架。不用担心每次那样麻烦的拷贝了。后台管理系统集成模板修改,菜单管理,用户管理,...
并提供akka异步执行集成,多数据源自动orm映射,flyway数据库脚本升级, shiro 权限系统 freemarker-shiro标签支持,以及其他改进 使用angularjs作为前端框架, 以及 bootstrap requireJs+coffeescript+less...
WechatAlpha An alpha platform for all wechat accounts 系统安装 1、将jeewx压缩包解压并上传到...3.使用mysql数据库,初始数据库脚本在doc中。数据库配置文件在resources\dbconfig.properties 4.还有问题找灵达
1 TOMCAT安装路径中请不要包含中文字符,否则程序将不能正常运行. 目录及文件: debug\document PDM及数据库脚本。 作者留言: 本程序是作者学习struts spring hibernate构架后为了练习开发的一个小程序。开发此...
如果不需要自动初始化数据,可以删除resource目录的import.sql文件。 方式二: 直接导入base.sql脚本到数据库。 把application.properties中的数据库连接信息修改成自己数据库的连接信息。 修改spring.jpa.hibernate...
文件包括:搭建流程、表结构设计说明、项目代码、环境安装包、数据库脚本。 技术包括:SpringBoot、Mybatis、MySQL、Quartz定时任务、Elasticsearch搜索引擎Freemarker、Bootstrap、ECharts报表、Animate-UI、HTML、...