jfinal3.0+在SQL语句中使用in传递参数的方法

1、在“控制器”依据业务逻辑生成int[]数组。

示例:

/**

 * 获取部门下的所有用户

 */

String dept_id ='0101' ;

String sql ="SELECT id FROM sys_user t WHERE t.dept_id=?";

List<Record> list = Db.find(sql, dept_id);

int[] ids = new int[list.size()];

int i = 0 ;

for(Record r: list){

ids[i] = r.getBigDecimal("id").intValue();

        i++;

}

Kv cond = Kv.by("ids", ids);

SqlPara sqlPara = Db.getSqlPara("sys.user_list", cond);

Page<Record> pageRecord = Db.paginate(pageNumber, pageSize, sqlPara);

//下面的render语句是我自己封装的,以你们实际的为准喔 ^_^

renderDataGrid(pageRecord);


2、在SQL语句中使用for循环遍历生成占位符?。

示例:

#namespace("sys")

    #sql("user_list")

        select * from sys_user 

where t.dept_id in (

#for(x:ids)

#(for.index == 0 ? "" : ",")  #para(x)

#end

)

    #end

#end

评论区

JJfinal

2018-01-02 10:52

好贴 支持 , 学习了

いのり

2018-01-05 17:40

谢谢分享

热门分享

扫码入社