2020-07-17 16:12

这个问题要改成: java 如何判断两个对象相等

本质上与 jfinal 无关,纯 java 问题

2020-07-17 16:11

当成多数据源来使用,按照文档来:
https://jfinal.com/doc/5-14

但这里你要处理好 Model 与数据源的映射关系,一个 Model 只能映射到一个数据源,而不能是多个,但你可以通过 Model.use(...) 来临时切换 model 对应的数据源

2020-07-17 16:07

简洁大方,赞

2020-07-17 12:31

@jounzhang 改主键值通常是错误的,因为别的 table 很可能早有很多数据与该主键进行了关联,从而会造成数据一致性问题。除非是很特殊的情况,一般不建议这么用

此外,改主键当然最好是用 Db.update(....) 来操作,无论是单主键还是多主键都十分方便。并且 Db.update(...) 还可以批量改主键,而 Model 要做到改主键的功能,只能一次改一个 model

2020-07-17 12:27

@尘飞 NoClassDefFoundError 可能是找到不依赖,也可能是找到了多个依赖,注意检查

2020-07-17 11:53

这是什么情况下发生的错误? 是在 eclipse 中启动项目?

2020-07-17 11:36

这些信息是启动时向控制台输出的,要现场去看的信息,不能使用日志

2020-07-16 23:38

jfinal 提供的 Cron4jPlugin , 可以动态创建,动态 start(),动态 stop(),所以使用一个界面来管理定时任务是可行的,俱乐部已经有同学做过这类功能

数据库部分,可以创建一个 task 表,字段可以是: id、cron、status 等等,其中 cron 是调度用的表达式

弄一个界面,用于创建、管理 task 表中的数据

弄一个列表,显示 task 表中的数据,在操作栏中放两个按钮:启动、停止

打完收工

2020-07-16 23:33

@crazycl 当然可以,原理都是一样的

2020-07-16 22:19

Db 可以通过继承 DbPro 覆盖其中的 save() 方法即可解决,最后切换到自己的 DbPro:
arp.setDbProFactory(new MyDbPro());

2020-07-16 17:35

这个功能偏业务,大致流程如下:
1:在 jfinal 项目中生成一个随机数字字符串
2:将生成的字符串存放在数据库中
3:正如 @小白菜111 说的,用一个第三方的短信平台将上面的随机字符串发送给用户手机
4:用户在页面输入收到的字符串并提交
5:项目中验证用户提交的字符串与数据库中的对比,相同则通过验证

2020-07-16 17:01

有个很重要的事情, 参数注入本质还是用的 getModel 与 getBean ,所以如果你用 getModel 工作正常,但参数注入不正常,只有一种可能, 那就是你的参数注入其实用的是下面这个:
getBean(...);

而不是用的 getModel

那么问题变成了, jfinal 的参数注入在什么情况下调用 getModel,什么情况下调用 getBean?

答案是如果你的 Pay.java 实现了 com.jfinal.plugin.activerecord.IBean 这个接口,就会使用 getBean,否则如果继承了 Model 就会使用 getModel,其它情况使用 getBean, jfinal 中的相关源代码如下:

if (com.jfinal.plugin.activerecord.IBean.class.isAssignableFrom(typeClass)) {
//实现了IBean接口,优先按BeanGetter来处理。
return new BeanGetter(typeClass, parameterName);
}
else if (com.jfinal.plugin.activerecord.Model.class.isAssignableFrom(typeClass)) {
return new ModelGetter(typeClass, parameterName);
}
else {
return new BeanGetter(typeClass, parameterName);
}

那么问题就可以最终确定为,你在表单域中的 order_id 没有对应到相应的 setter 方法

2020-07-16 16:51

@永字诀 这个是正解

2020-07-15 23:36

@BTMTimor 没仔细看到问题, @xialinlin 同学的回复是对的

2020-07-15 18:15

@七五热 注意要调用 druidPlugin.stop() 与 arp.stop(), 才能释放资源

jfinal 之下这两个方法是框架自动调用的