2018-07-14 15:52

@jiren 有多少个问号就要有多少个参数,此外,你后面的 p_campusld 与 StrKit.join(...) 生成的所有参数应该处于同一个 Object[] 数组里面,不能分开写

你的 StrKit.join(ids,",") 这个代码最终生成的是一个字符串,里面有很多个参数直接放在 in 里面去,否则你的 in 里面就可拼接出同样数量的问号来对应

你这个情况比较复杂,我直接说一下正确的使用结果,假定一共有三个参数:
Object[] paras = new Object[3];
paras[0] = p_campusId;
paras[1] = ids[0];
paras[2] = ids[1];

Db.update("update bx_edums_schedule set is_deleted = '1' where c_id = ? and id in (?, ?)", paras);

注意看上面,问号是三个,参数 paras 数组正好是三个元素。而且特别重要是的 p_campusId 与 ids 这两个参数是要合并到同一个数组中去的,除非你的 ids 不是数组,可以这样:
Db.update("update bx_edums_schedule set is_deleted = '1' where c_id = ? and id in (?, ?)", p_campusId, id1, id2);

如果是数组,可以这样:
Db.update("update bx_edums_schedule set is_deleted = '1' where c_id = ? and id in (?, ?)", p_campusId, ids[0], ids[1]);

这个问题你得明白Java 中的 Object... paras 可变参数规则

2018-07-14 15:45

应该是你的浏览器请求被劫持了

2018-07-14 15:42

select * from user where name ='' or 1=1#' 这个是条正常的 sql ,与注入没有关系

jfinal 内部所有数据库操作 API 使用的是 preparestatement,这个东东是要配合问号占位符的,例如:
Object para = "or 1=1#'";
Db.find("select * from user where name =? ", para);

像上面一样来用,无论你组装什么样的参数都没有用

2018-07-14 10:33

1000 个客户端并不算多, 但你的机器也不能太差,起码得是 4 核 4G。再一个你的应用程序的业务不能是特别耗时的极端场景,一般是没有问题的

tomcat 成熟稳定很多年了,这点压力根本不是个事

2018-07-13 16:15

@欧阳粤 把两者的例子代码整合在一起就是完整的了

2018-07-13 16:08

jfinal 的配置与 redis 的配置,各自都在文档中有例子,可以参考一下

2018-07-13 16:07

具体是怎么用的?

url 中带 date 参数,建议使用问号挂参,例如:
action?data=2018-09-09

2018-07-13 16:06

@奋斗的小健健 第二数据源 jfinal 也是在 finally 块中关闭的,肯定没事

应该是别的原因,例如网络延迟啥的

2018-07-13 16:05

如果是转成了 json,需要配置一下转 json 时的 datePattern:
me.setJsonDatePattern("yyyy-MM-dd")

2018-07-13 16:03

@yuner Clear 本来就无法删除 method 级别的拦截器,本身就是这么设计的。 你并没有钻牛角尖,可能是看错了这个功能点

2018-07-13 14:28

@yuner Method 级别的拦截器直接删掉就可以,没必要用 @Clear

2018-07-13 10:14

@阿呆 你的异常提示中出现了 ILoggerFactory, 证明有老版本的 jfinal 被同时依赖,应该是 jfinal-ext2 这个第三方中包含进来的,使用 exclusion 配置排除掉,或者直接删掉 jfinal-ext2

还有一个更简单的办法是用 eclipse 打开 pom.xml , 再点击下方的 Dependency Hierarchy 视图,可以看到多个 jfinal 版本被依赖,想办法去掉其中低版本那个