1.使用freemarket 生成sql语句
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>
2.调用,与Index.xml在同一级目录
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);
}
}
3.
select * from t_accountTransfer where isdelete=0 and userid= '1'
分享到:
相关推荐
在本示例中,我们将探讨如何使用Spring MVC和FreeMarker框架构建一个带有SQL数据库支持的登录系统。Spring MVC是Spring框架的一部分,它提供了一个模型-视图-控制器(MVC)架构,使得开发者可以轻松地处理Web应用的...
这个`XML.ftl`文件就是核心,它是Freemarker模板的实例,其中定义了如何根据输入数据生成XML实体映射文件的规则。 首先,让我们深入理解Freemarker模板。FTL文件由一系列指令和表达式组成,这些指令和表达式决定了...
通过Spring Boot 2、Hibernate和FreeMarker的集成,你可以创建一个轻量级的、面向对象的Web应用,其中数据访问层使用Hibernate简化数据库操作,而视图层利用FreeMarker生成动态HTML。这个简单的实例为初学者提供了一...
在本实例中,我们将深入探讨如何整合SpringBoot、MyBatis、Druid、PageHelper以及FreeMarker这五大组件,创建一个高效且易于管理的Web应用。这些技术在现代Java开发中占据着重要的地位,尤其在构建后端服务时,它们...
5. 生成代码:使用FreeMarker的`Template`类和`Configuration`类,将填充后的模板转化为Java源代码字符串。 6. 写入文件:使用Apache Commons IO将生成的Java代码写入指定的文件路径,完成实体类的创建。 代码自动...
FreeMarker则是一个强大的、与语言无关的模板引擎,常用于生成动态Web内容。而Maven则是Java项目管理工具,它能帮助我们管理和构建项目,自动化依赖管理和构建流程。 首先,让我们来了解JFinal的核心特点: 1. **...
通过Hibernate,开发者可以使用Java对象来操作数据库,而无需编写大量的SQL代码。它提供了数据持久化、查询、事务处理等功能,使得数据库操作更加灵活和高效。在本项目实例中,Spring和Hibernate的整合使得业务逻辑...
总的来说,这个项目是一个典型的Java Web应用架构,它利用Maven管理依赖,Spring MVC处理Web请求,Spring3负责组件管理和业务逻辑,iBatis处理数据库交互,Freemarker生成动态视图,而EasyUI则提供了用户友好的界面...
这是一个基于Java Web开发的小型留言板应用实例,使用了Maven作为构建工具,SSM(Spring、SpringMVC、MyBatis)作为核心框架,Proxool作为连接池,Freemarker作为视图模板引擎,DWR(Direct Web Remoting)用于实现...
本实例主要涉及的技术栈包括SpringMVC、MyBatis、EhCache、FreeMarker以及Sitemesh,这些技术都是Java Web开发中的重要组件,各自承担着不同的职责。下面将分别详细介绍这些技术以及它们在整合中的作用。 1. ...
在Web应用中,Freemarker与Spring MVC搭配使用,可以生成HTML页面。开发者可以在Freemarker模板文件中定义逻辑,然后由Spring MVC的ModelAndView对象提供数据,最终生成动态响应。 在实际开发中,首先需要在Eclipse...
这是一个基于Java技术栈的应用实例,整合了多个关键的开源框架,包括Maven、SpringMVC、MyBatis、FreeMarker和Velocity。这些技术在IT行业中广泛应用于开发企业级Web应用程序,构建高效、灵活且可维护的系统。接下来...
在上述例子中,`Test1.java` 类展示了如何使用 FreeMarker 生成简单的文本输出,其中 `${user}` 在模板中被替换为数据模型中的值,即“老高”,最终输出“你好啊,老高,今天你的精神不错!”。 总的来说,...
本项目是将Freemarker与SSM结合,并通过Maven进行依赖管理的实例。下面将详细介绍这个整合过程中的关键知识点。 1. **Spring框架**:Spring是一个开源的Java平台,它提供了AOP(面向切面编程)、IOC(控制反转)和...
Spring提供了业务逻辑和安全框架,Hibernate负责数据持久化,Freemarker生成动态视图,而jQuery则增强了前端用户体验。通过这个实例,开发者可以学习到如何将这些组件有效地整合在一起,构建出健壮的Web应用程序。
类似的,MyBatis的Mapper框架也允许开发者自定义XML或注解来生成SQL查询和对应的Java方法。 4. **注解处理器**: Java的注解处理器(Annotation Processor)可以在编译时读取自定义注解并生成源代码。比如,...
最后,由FreeMarker生成动态HTML视图,返回给客户端。 这个压缩包文件“shf”可能包含了整个项目的所有文件,包括源代码、配置文件、资源文件等。为了运行这个项目,你需要将其解压,导入MyEclipse或类似的IDE,...
4. **整合使用**: 在Struts2中,可以配置Action来调用iBatis的SqlSession,执行SQL操作。FreeMarker则作为视图渲染引擎,接收Action返回的数据,根据模板生成HTML页面。这种三层架构模式(控制层、服务层、视图层)...
本实例是一个完整的项目,包含FreeMarker模板引擎与Spring、SpringMVC以及MyBatis的集成,同时使用了Maven作为构建工具,方便管理和依赖管理。下面将详细解析这一整合过程中的关键知识点。 1. **Spring框架**:...
在本项目中,Freemarker将与Spring MVC协同工作,接收由后端Controller处理的数据,根据模板生成响应的网页内容,用于显示和编辑数据。 **Spring Security** 是Spring框架的一个子项目,专注于应用安全。它提供了...