2022-02-14 10:43

@北流家园网 config.getDialect().takeOverDbPaginate 和前面分享的数据库增加乐观锁扩展差不多,再重写isTakeOverModelPaginate() 和takeOverDbPaginate方法就可以了

2022-02-14 10:41

@山东小木 老师是的,分页的总行,和以前的SQL查询结果是一样的,在select count(*)位置做了if判断,其他都是一样的。
本来想对paras.toString再md5一下做个全局后台缓存来着,写代码时觉得前端传入值更方便轻量些,就让传入值了

2022-02-14 09:57

@北流家园网 是的缓存了,只不过是缓存在前端了,和缓存一样,增删都需要更新缓存,需要置为null才会获取最新的

2022-02-13 15:08

@山东小木 支持前端传入,用法和以前一模一样,不用太多改变,如果Action里面只有一个分页查询,可以使用拦截器@Before(PaginateInterceptor.class) 参数有totalRow就行。
如果有多个分页处理,手动MyDbPro.paginate(传入总行数即可。
由前端缓存 总行数,查询条件改没改变,前端自然是知道的,前端查询条件如果改变,传入的总行数传null或者不传值即可,都会刷新最新的总行数

2022-02-11 11:38

@山东小木 是的,我遇到一些慢SQL有因为 select count(*) 导致CPU暴涨的,在索引已经加过的情况下,就是去掉paginate,手动find查询再二次包装返回对象了。
应该是可以扩展paginate方法的,但毕竟我没有那么多慢SQL,业务哪个点遇到了就单处理了,没做封装。确实可以瞅瞅paginate方法看咋简单的扩展一下

2022-02-10 15:18

@山东小木 o(╥﹏╥)o 没啥经验,设计表业务的时候尽量避免大表出现,做好索引。。。如果CPU还飙升,就根据查询条件缓存总行数,别总去count*,手动find分页就行。。。如果还飙升,充钱就行。。。我一般优先充钱解决问题。。。
image.png
image.png

2022-02-09 17:38

FstSerializer 序列化get失败了,那得看set进去的时候用的啥,set 和 get 得用同一种方式了,

2022-01-19 11:32

代码还经常在打磨了,没有什么新需求吧。。。
https://gitee.com/jfinal/jfinal/commits/master

2022-01-17 12:13

哎,不是停服了吗? 我还以为是停更的意思了😺

2022-01-17 12:11

@pandalam 使用debug模式,打个断点看吧,就知道了,得用键,不要用值

2022-01-17 12:09

@pandalam 得,你还是没看懂我说的,你改成:
renderJson("resule", validateCaptcha("captchaCode"));
就好使

2022-01-16 16:13

根据描述,_captchaCode 这个是前端穿过来的值,而validateCaptcha(键名),这俩不是一个值的。
源码也没看仔细,源码是:
return com.jfinal.captcha.CaptchaRender.validate(this, getPara(paraName));

注意是:getPara(paraName)

PS:
https://gitee.com/jfinal/jfinal/blob/jfinal-4.9.16/src/main/java/com/jfinal/core/Controller.java

2022-01-14 15:02

@happyboy 我们也有老项目,,,以前的项目一个功能就是一个页面,,,也没有抽取,,,真是懒得改了,费时间,还有稳定性问题。。。新项目用新架构,没毛病哈哈 ,老项目还是用Tomcat靠谱些。。。