jfinal3.0+在SQL語句中使用in傳遞參數的方法

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章