2020-11-04 16:19

PS:master数据库登录的那个账户,也必须能操作slave 数据库权限,或者说登录的账户能操作这两个库的时候, 才可以使用库名前缀。

2020-10-28 10:36

DictKit.getName 里面写法和你的#dictionary Directive差不多,kit里面做下 EhCache缓存就很爽了

2020-10-28 10:31

#dictionary 是Enjoy后端执行的语法,{{d.orgId}}是laytpl前端浏览器执行的语法,两个东西执行的时空都不一样。咋取值。。。思路错了。
推荐在JF的DB执行查询结果之后,进行 for(x : list)x.set("orgName", DictKit.getName(x.get("orgId"))) 处理,
然后在浏览器laytpl里面使用{{d.orgName}} 这样子取值就很OK

2020-10-20 15:34

@hiado mysql的话,本来就支持的,比如:
String sql = "insert into user(name, cash) values(?, ?) ON DUPLICATE KEY UPDATE cash=VALUES(cash)";
int[] result = Db.use().batch(sql, "name, cash", modelList, 500);

2020-10-17 12:45

@小徐同学 我用着正常了,升级试试 https://blog.csdn.net/dling8/article/details/84061948

2020-10-16 18:38

@或是的话 升级JF版本,用java8+

2020-09-30 09:10

@李通 业务框架封装没有对错吧,可能是大家没有触及你的业务感觉不到便利

2020-09-29 18:37

PS简写的有:
User user = User.dao.findByIdLoadColumns(123, "age");
User user = User.dao.findByIdLoadColumns(new Object[]{123, 456}, "name, age");

2020-09-27 19:31

@小徐同学 徐大 https://jfinal.com/share/2278 这次魔改,是不是就支持上面反馈的写法了?

2020-09-23 13:48

https://jfinal.com/doc/4-6
4.6 Aop 工具

2020-09-23 11:16

@李通 需要,因为他们各自管各自的事情。DruidPlugin的stop管连接池关闭。ActiveRecordPlugin的stop是卸载Model映射关系以及Db的一些配置等。

2020-09-23 09:34

线程都结束了,池子对象也就不在了。DruidPlugin最好是手动关掉,如果只有一个线程工作的话,最好new DruidPlugin(...).set(1,1,1)设置一下最小值,免浪费资源

2020-09-21 22:11

@渴死的鱼 不是网友说的不详细,只是这个问题是一个运行状态提示罢了。
就像大家不会解释太多NullPointException咋处理一样,
因为创建ServerSocket对象的线程 和 操作关闭 一般写法不是同一个线程,所以循环调用serverSocket.accept()的时候,会提示Socket is closed
如果非得不让它提示,那么serverSocket.close()得由创建ServerSocket对象的那个线程来自己关闭,比如增加一个 自定义全局变量 来管理关闭状态,外部线程只标记关闭自定义那个状态,不做真正关闭操作。伪代码大致:
myClose = true;//比如在JFinalConfig 配置子类 的onStop()赋值
while (true) {
if(myClose){
serverSocket.close();
return;
}
//前面如果关闭了,代码就执行不到这里来,当不会提示了
socket = serverSocket.accept();
}
但是感觉不如加一个try catch来得方便,因为循环当中,本来大家都会写try catch所以更简单

2020-09-21 11:05

@渴死的鱼 没见代码咋写的咋关闭的, 可以try catch 住 不让继续外抛 :)