2022-12-26 22:13

@flyinkeke 上面productRelSupplierProduct.put(r); 改成
productRelSupplierProduct._setAttrs(r.getColumns());
就可以了,因为put不会标记到数据库,要用set才会被标记为记录数据库

2022-12-09 18:25

https://jfinal.com/doc/14-1
29、升级到 4.9.13 《 有提示。实在找不到直接写个绝对路径即可(idea配置不匹配)

2022-12-03 13:09

@yjjdick1990 感觉业务简单的话,好像也可以用一下,
DbPro b = Db.use("B");
try {
Db.use("A").tx(() -> {
try {
return b.tx(() -> {
// 操作数据库A
// 操作数据库B(积分数据库)
return true;
});
} catch (Exception e) {
//log.err记录
return false;
}
});
}catch (Exception e){
//log.err记录
//b.update("sql");
//对数据库B的操作 进行删除或修改进行还原数据
}

2022-12-03 11:42

@yjjdick1990 https://www.bilibili.com/video/BV1Q4411y7ip?p=4&spm_id_from=pageDriver&vd_source=b4ceb381bd1cb6d4920343164c76e7c5

2022-12-03 10:43

上面说的tx可能也有问题,当B事务提交成功了,A事务提交失败的时候,B的操作就执行了,也GG。。。还得学习其他的软件

2022-12-02 23:37

@yjjdick1990 啊?不是我分享的吧。。。
jfenjoy是以前才学写的太繁琐了,3.3版后的Enjoy 就可以直接生成文件了。
分布式系统数据一致性网上资料挺多了,我没写过,估计大致就是让两边业务都操作成功了再双双提交事务吧。
https://jishuin.proginn.com/p/763bfbd5f959
以前有过一个业务是两套系统操作,但是当时是把业务拆到一个记录表,然后任务器专门执行那个业务数据,执行结果再存入记录表。用户通过接口定时循环查询记录表看结果。

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 是你想要的。不如说说整体需求,搞不好有现成的方案