Jfinal 批量处理

RobinsonLiao 发布于 2015/06/25 13:06
阅读 691
收藏 0

@JFinal 你好,想跟你请教个问题:

我在Controller中接收checkbox的数据,需要批量更新

        String[] iDs = getParaValues("items");
        int status = getParaToInt("status");


        List<Comment> commentList = new ArrayList<Comment>();
        if(null != iDs && iDs.length>0) {
            for (int k = 0; k < iDs.length; k++){
                Comment e = getModel(Comment.class);
                e.set("status", status);
                commentList.add(e);
            }
        }

1.其中

Comment e = getModel(Comment.class);
是否相当于new一个可操作的对象?

2. 可否就以上内容给出一个Db.batch的使用示例?

下面的方式是否可行?

Db.batch("update comment set status=1 where id=?","id",commentList,20)

加载中
0
bigtiger02
bigtiger02

你这个需求直接update comment set status=1 where id in(1,2,3)不就可以了.

Db.update(sql);



0
JFinal
JFinal

如果是批量 model 提交,需要稍微做下处理,大致流程如下:

1:生成表单域名称的时候编上号:

<input name="comment_0.title" />
<input name="comment_0.content" />

<input name="comment_1.title" />
<input name="commnet_1.content" />

   以上 name 属性的下标形式可以用 freemarker很容易地在循环中生成

2:在action中循环获取这些 model

for (int i=0; i<n; i++) {
  Comment c = getModel(Comment.class, "comment_" + i);
  commentList.add(c);
}

    最后 Db.batch 的使用方法在源码上有具体的例子,只要在 eclipse 中将鼠标划过方法,即可看到例子。

返回顶部
顶部