`
prodream
  • 浏览: 102315 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

freemarker运用实例

    博客分类:
阅读更多
import java.io.InputStream;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.io.IOUtils;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

import freemarker.cache.StringTemplateLoader;
import freemarker.template.Configuration;

public class Index {
	public static void main(String[] arg) {
		StringTemplateLoader STL = new StringTemplateLoader();
		Configuration CONFIG = new Configuration();
		CONFIG.setTemplateLoader(STL);

		InputStream is = null;
		try {
			is = Index.class.getResourceAsStream("index.xml");
			Document doc = DocumentHelper.parseText(IOUtils.toString(is));
			List<Element> es = doc.selectNodes("sqls/sql");
			for (Element e : es)
				STL.putTemplate(e.attributeValue("id"), e.getTextTrim());
		} catch (Exception e) {
			throw new IllegalStateException(e);
		} finally {
			IOUtils.closeQuietly(is);
		}
		Map cond = new HashMap<String, Object>();
		cond.put("userid", "'1'");
		cond.put("tbl_main", "t_accountTransfer");
		StringWriter sw = new StringWriter();
		try {
			//生成sql
			CONFIG.getTemplate("queryAccountTransfers").process(cond, sw);
			//打印
			System.out.println(sw);
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}

}

 

freemarker: index.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<sqls>
	<sql id="queryAccountTransfers"><![CDATA[
		<#assign where>
			<#if date??>
	      and transferTime>=:date
	    </#if>
	    <#if date_end??>
	      and transferTime<=:date_end
	    </#if>
	    <#if money??>
	      and srcMoney>=:money
	    </#if>
	    <#if money_end??>
	      and srcMoney<=:money_end
	    </#if>
	    <#if scrAccountId??>
	      and srcAccountId=:scrAccountId
	    </#if>
	    <#if tgtAccountId??>
	      and tgtAccountId=:tgtAccountId
	    </#if>
	  </#assign>

    <#assign where=where?trim>
    select *
    from ${tbl_main}
    where isdelete=0 and userid=${userid}
    ${where}

	]]></sql>
</sqls>

 

 

 

 

分享到:
评论

相关推荐

    JAVA上百实例源码以及开源项目源代码

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    JAVA上百实例源码以及开源项目

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    Java学习指南20 JavaFX高级

    以实际工程运用为背景,演示各种应用级技术的实现方式。 二、主要内容?本篇配备充分的实例,包含以下内容:* 界面线程与工作线程的基本原理* 定时任务* 小任务,即一次性的短任务* 进度条定制* 对话框定制* 滚动窗口...

    Java反射机制与框架原理

    一、课程简介 这是『Java学习指南系列』的第18篇教程 ,是Java开发的高级课程,介绍反射...〖网站开发〗系列:包含网页基础、网站入门、数据库、网站中级、FreeMarker、网站高级、项目应用、MyBatis、Redis等课程。

    java开源包1

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包2

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包3

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包6

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包5

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包10

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包8

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包7

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包9

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包101

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包11

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包4

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    Java资源包01

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

Global site tag (gtag.js) - Google Analytics