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

本文介绍如何在JFinal3.0+框架中实现通过控制器生成int[]数组,并将其作为IN参数传递到SQL查询中。此外,还展示了如何在SQL语句中使用循环来生成占位符,以便支持多个参数的传递。

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

    /**
     * jfinal3.0+在SQL语句中使用in传递参数的方法
     */
    public void user_list() {
        int pageNumber = getParaToInt("page",1);
        int pageSize = getParaToInt("rows",10);
        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

转载于:https://blog.51cto.com/lionkas/2055593

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值