SQL标签

  1. 使用SQL标签可写sql语句,并执行查询,把查询结果显示在页面上。
  2. 只有当具体的业务标签不能满足要求时才使用SQL标签。
  3. 使用本标签可扩展出其它业务标签(写sql)

类型
标签
作用
参数
返回值
完成
SQL标签 sql.queryList(){}

执行动态SQL,查多行

参数名
数据类型
默认值
作用
limit int 10 取前n条数据
outVar String 查询结果输出的变量名
debug boolean false 是否开启调试,true开启会在控制台输出sql
List<Map<String,Object>> 已完成
SQL标签 sql.queryPage(){} 执行动态SQL,分页查询
参数名 数据类型 默认值 作用
pageNo int 1 页码,取第几页
pageSize int 20 每页大小
pageCount int 总记录数
outVar String 查询结果输出的变量名
debug boolean false 是否开启调试,true开启会在控制台输出sql
Page 已完成
SQL标签 sql.queryOne(){} 执行动态SQL,查一行
参数名 数据类型 默认值 作用
outVar String 查询结果输出的变量名
debug boolean false 是否开启调试,true开启会在控制台输出sql
Map<String,Object> 已完成
SQL函数 sql.param();
参数名 数据类型 默认值 作用
sql的值 任何类型

配合SqlQueryPageTag自定义标签,用于存储sql的参数

已完成
SQL函数 sql.include();

用于加载一个sql文件,

或加载sql文件的一部分,支持局部渲染技术

参数名 数据类型 默认值 作用
模板文件的路径 String 模板文件的路径
已完成
内置函数

global("变量名")

取出sql.queryXxx标签的查询结果
参数名 数据类型 默认值 作用
变量名 String 从全局变量表中取某个变量
已完成

使用示例一

sql.queryPage标签测试

在模板中动态拼接SQL

<%
var id=57;
var name="张三";
%>
<%sql.queryPage({outVar:"product_page5",debug:true}){%>
select * from product_kkk where 1=1
<%if(id!=null){ %>and id=${sql.param(id)}<%}%>
<%if(name!=null){ %>and name=${sql.param(name)}<%}%>
order by id desc
<%}%>
<%for(item in global("product_page5").list){%>
<span>你的ID是:${item.id},姓名是:${item.name}</span>
<%}%>

使用示例二

sql.queryPage标签测试

在独立文件中动态拼接SQL,并演示了一个sql文件中存放多条Sql。

<%
var id=57;
var name="张三";
%>
<%sql.queryPage({outVar:"product_page5",debug:true}){%>
<%sql.include("/demo/sql/a.sql#select_product_1",{id:102,name:"李891"});%>
<%}%>
<%for(item in global("product_page5").list){%>
<span>你的ID是:${item.id},姓名是:${item.name}</span>
<%}%>


独立的/demo/sql/a.sql文件

<%#ajax select_product_1:{%>
select * from product_spu1 where 1=1
<%if(id!=null){ %>and id=${sql.param(id)}<%}%>
<%if(name!=null){ %>and name=${sql.param(name)}<%}%>
order by id desc
<%}%>
 
<%#ajax select_product_2:{%>
select * from product_spu2 where 1=1
<%if(id!=null){ %>and id=${sql.param(id)}<%}%>
<%if(name!=null){ %>and name=${sql.param(name)}<%}%>
order by id desc
<%}%>