这不是废话吗?本来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.多的是,可以做模板定制嘛!!!!!!
分享到:
相关推荐
在本项目中,"基于Springboot开发在线音乐网站(包含数据库脚本文件)"是一个使用现代Web技术构建的音乐分享和播放平台。该网站利用Spring Boot框架的优势,为用户提供了一个简洁、高效的交互体验。以下是对该项目...
包含的数据库脚本文件用于初始化商城系统所需的数据库结构和数据。这些脚本通常包括创建表、定义主键、外键、索引等。例如: - `users.sql`:创建用户表,包括用户名、密码、邮箱等字段。 - `products.sql`:创建...
4. **数据库脚本文件**: 学生成绩管理系统必然涉及到数据库操作,数据库脚本文件通常包含了创建数据库表结构、初始化数据等内容。这些脚本可能包括学生的表(如学生ID、姓名、性别、年龄等)、课程表(课程ID、课程...
SSM超市管理系统是一款基于Spring、SpringMVC和MyBatis三大主流Java开发框架构建的典型...通过导入提供的MySQL数据库脚本文件,用户可以快速搭建起一个完整的超市管理平台,从而实现对超市各项业务的有效管理和监控。
毕业设计,SpringBoot+mybatis+mysql开发的高仿小米电子商城项目,内含完整源码+数据库脚本 项目描述 Spring Boot高仿小米电子商城项目模板,freemarker的ftl文件实现页面模板,maven的多模块搭建 开发环境 IDEA ...
这个项目提供了完整的源码和数据库脚本,适合初学者或开发者用来学习和研究。 **Spring框架**:Spring是Java企业级应用的核心框架,它提供了一个全面的编程和配置模型,简化了企业级应用的开发。在本项目中,Spring...
该项目是基于Java的Freemarker数据库实体类生成器设计源码,共包含71个文件,其中包括43个Java源文件、8个Freemarker模板文件(.ftl)、3个JavaScript脚本文件、3个GIF图片文件、2个JAR包文件、2个PNG图片文件、1个...
标题中的“基于SpringBoot的校园二手交易平台系统源码+数据库脚本(毕业设计)”表明这是一个使用SpringBoot框架开发的项目,目标是构建一个适用于校园内的二手交易系统。这个项目可能包括了完整的前后端功能,以及...
4. **数据库脚本**:`bfblog.sql`文件是数据库脚本,通常包含创建数据库表结构、填充初始数据或执行其他数据库初始化任务的SQL语句。在这个博客系统中,这个脚本可能包括了用户表、文章表、评论表、分类表等关键实体...
【标题】中的“基于SpringBoot的教务管理系统源码+数据库脚本+毕业设计”表明这是一个使用SpringBoot框架开发的教育管理系统的完整项目,包含了源代码、数据库脚本以及可能的毕业设计文档或报告。这样的项目对于学习...
"sql2doc"可能是实现数据转换的脚本或程序,它读取MySQL数据库的表结构信息,然后使用FreeMarker模板生成Word文档。SQL查询通常用于获取数据库的元数据,如表名、列名、数据类型等。这个工具可能执行了类似"DESCRIBE...
这个项目不仅提供了完整的前后端源代码,还包括了数据库脚本,方便开发者直接进行部署和学习。 1. **SpringBoot**: SpringBoot是Spring框架的一个子项目,它简化了Spring应用的初始搭建以及开发过程。它集成了...
该项目是一款基于关系型数据库与Freemarker模板的糖果代码生成器设计源码,包含56个文件,涵盖14个Java源文件、12个FTL模板文件、5个Markdown文档、3个Gradle构建脚本、3个批处理脚本、3个属性文件、2个Git忽略文件...
模板文件通常由纯文本和FreeMarker指令组成,这些指令会告诉FreeMarker如何处理数据模型。 2. **数据模型**:这是FreeMarker工作的基础,它包含了要展示的数据。数据模型可以是从Java对象或任何其他数据源(如...
- graduation.sql文件是数据库脚本。eova压缩包存放的是教务管 理员后台。 - 教务管理员是在eova后台登录的,在完用户还需要在对 应的教师信息/学生信息界面完善信息才能生效。 - 学生账号/密码:000000/000000 ...
应用内置MySQL数据库脚本,程序第一次启动后会出现安装过程,根据要求填写系统会自动安装,默认数据库名称为webfast4dev, 数据库参数配置及外部文件管理目录默认指定为d:/webfast/demo4dev/appdata。若该目录不存在...
总结来说,"ssm项目源码文件网上零食商城包含mysql脚本文件.zip"是一个涵盖了Spring、SpringMVC和MyBatis的完整Java Web项目实例,包含了数据库设计、后端服务实现和前端展示的全部内容,对于提升Java Web开发技能和...
该项目是一款基于SpringBoot2和Freemarker技术的代码生成器源码,包含202个文件,涵盖47个FTL模板、32个CSS样式文件、31个JavaScript脚本文件、25个Java类文件、9个HTML文件、8个PNG图像文件、7个映射文件、6个YAML...
而`HzjwCMS`可能包含了整个项目的源代码和资源文件,包括但不限于Java类、配置文件、Freemarker模板、静态资源等。通过学习和研究这个项目,开发者可以深入了解如何在实际项目中整合Spring MVC、MyBatis和Freemarker...
2. **数据驱动**:FreeMarker 不直接操作数据库或执行业务逻辑,而是接收一个数据模型,这个模型通常是一个Java对象或集合,然后根据模板和数据模型生成输出。 3. **安全**:由于FreeMarker模板中不包含业务逻辑,...