#para 指令用于在 sql 模板中根据参数名生成问号占位以及查询参数
一、参数为表达式的用法
1:模板内容
#sql("find")
select * from user where nickName = #para(nickName) and age > #para(age)
#end
2: java 代码
user.template("find", Kv.of("nickName", "prettyGirl").set("age", 18)).find();
3:以上用法会在 #para(expr) 处生成问号占位字符,并且实际的参数放入 SqlPara 对象的参数列表中
二、参数为 int 型数字的用法
1:模板内容
#sql("find")
select * from user where id > #para(0) and id < #para(1)
#end
2: java 代码
user.template("find", 10, 100).find();
3:以上用法会在 #para(0) 与 #para(1) 处生成问号占位字符,并且将 10、100 这两个参数放入
SqlPara 对象的参数列表中
三、4.9.23 新增支持 like、in 子句
### 一般用法,第二个参数传入 "like"、"in" 参数即可
select * from t title like #para(title, "like")
select * from t title like #para(title, "in")
### like 类型第一个参数支持 int 类型
select * from t title like #para(0, "like")
### like 支持左侧与右侧百分号用法
select * from t title like #para(title, "%like")
select * from t title like #para(title, "like%")
### 警告:对于 in 子句,如果 #para 第一个参数是 int 型,并且 java 代码针对 Object... 参数传入的是数组
select * from t id in #para(0, "in")
### 那么 java 代码中要将 Object... 处的参数强制转成 Object,否则参数传递不正确
Integer[] idArray = {1, 2, 3};
Db.template("findByIdArray", (Object)idArray).find();