2022-12-02 18:00

我寻思直接写不就得了么?还是有什么梗没考虑到?
Db.use("A").tx(() -> Db.use("B").tx(() -> {
// 操作数据库A
// 操作数据库B(积分数据库)
return true;
}));

2022-12-01 16:53

好像描述不太清楚。
猜测可能是Tomcat部署配置项目路径不对,参考这篇博文:https://my.oschina.net/jfinal/blog/353062

JF里面有两个默认目录:
PathKit.getRootClassPath() 》存放class和配置文件的。
PathKit.getWebRootPath() 》存放网页等对外静态资源文件。

jfinal-undertow下:
开发时:
PathKit.getRootClassPath() 》项目\target\classes
PathKit.getWebRootPath() 》项目\src\main\webapp
部署时:
PathKit.getRootClassPath() 》项目\config
PathKit.getWebRootPath() 》项目\webapp

Tomcat下:
开发时:
(常见配置名为WebRoot或WebContent)
PathKit.getRootClassPath() 》项目\WebRoot\WEB-INF\classes
PathKit.getWebRootPath() 》项目\WebRoot
部署时:
PathKit.getRootClassPath() 》项目\WEB-INF\classes
PathKit.getWebRootPath() 》项目\

2022-12-01 16:25

记录参数用Handler 设置自建的 HttpServletResponse 》getWriter() 自建的PrintWriter想记录啥就记录啥

2022-11-23 17:58

@陈伟 单库上亿的数据业务还真没接触过。可以试试MongoDB,网上说这个得劲,还支持各种查询。可以在本机装一个,查询应该能满足,然后测试一下性能,看能满足不

2022-11-23 17:00

个人觉得也看业务需求了,只用到get set的话到也行。
从学习的角度看的话,建议把com.jfinal.plugin.redis的Cache方法都用一遍,看看都有哪些效果。
再说 get结果是<T> T 是放什么类型返回什么类型才是。(虽然都是Obj子类)

2022-11-18 21:46

@Aa789 以前做过一个类似项目也是由前端传入参数,后端组装SQL的。分享出来的代码是去掉了权限处理的Service。是可以继承DbService重写里面的方法,实现各个方法的校验。
https://gitee.com/yun_final/JFinal-API/blob/v1.0/src/main/java/com/yunfinal/api/service/db/DbService.java

2022-11-18 21:38

@Aa789 组装SQL的时候,就是校验最方便的节点了。比如表名,字段,条件,排序等等,组装拼接SQL的时候就可以校验了包括权限等等。所以不需要从SQL里面解析,而是组装SQL的时候就处理

2022-11-16 15:51

@Aa789 估计DruidPlugin这个类里面的addFilter 是你想要的。不如说说整体需求,搞不好有现成的方案

2022-11-16 09:21

@Aa789 Object[] para = Db.templateByString(sql, kv).getSqlPara().getPara();

2022-11-11 10:14

fastjson.JSONReader 这个类可以,搜索一下有教程

2022-11-10 10:36

Enjoy 后端模板就是后端了,与 Java 是直接打通的,可用方法何其多。
上面说的需求Enjoy 就支持的啊,Shared Method 扩展就是了 https://jfinal.com/doc/6-7

2022-10-17 16:24

@yuwen01 jsoup 确实方便好用,还可以做全站自动扒站为静态文件。
单论上述store() 方法,如果用JF做静态化的话,感觉可以继承TemplateRender然后重写render()方法文件输出到file就可以了,就不用总写Map了

2022-10-16 21:13

有个疑问点:RenderManager.me().getEngine() 对象就是JFinalConfig子类的Config.getEngine()对象,两个是同一个对象,设置的共享对象怎么就无法把数据写入到静态页面中了了?