2022-12-04 13:49

多数据源事务属于分布式事务,jfinal 没有提供支持

你要实现分布式事务,最好是借助第三方中间件,专业的事情交给专业的人,用一用 Sharding JDBC 这类中间件,基本上只需要配置,对于应用来说是透明的

要保障分布式事务的原子性、一致性,不是一般人想象的那样简单,性能代价也比较大

一般可以在业务层想办法解决,例如两个数据源的事务分别提交,前面的事务提交后在数据库留下某种状态信息,根据状态再决定是否决定执行第二个事务,再根据第二个事务的成功与否再决定第一个事务的状态是否要回到原状态(需要业务代码)

上面的方式比较麻烦,还有一个简单办法是,在设计层面将两个事务拆分成两个状态,让其成为业务的流程的两个环节,根据状态可决定下一步可以做什么事情

有关业务流程的表中通常要放一个 state 状态字段

2022-12-01 21:16

还有很多办法,方法一:
通过 JsonRender.gAttrs()、getJsonText() 获取必要数据,参考 JsonRender.buildJsonText() 中的代码去生成 json 来使用,这个会额外消耗性能

方法二:
继承 JsonRender 做一个 MyJsonRender,覆盖其中 buildJsonText() 方法,将方法声明中的 protected 改为 public:
public void buildJsonText() {
super.buildJsonText();
}
然后在拦截器中大致这么用:
if (render instanceof MyJsonRender) {
MyJsonRender mjr = (MyJsonRender)render;
if (getJsonText() == null) {
mjr.builderJsonText();
String json = getJsonText();
}
}

以上的 json 对象就得到了最终的 jsonText() 并且还不影响性能

方法二扩展的 MyJsonRender 可以放在 BaseController 中,通过覆盖父类的 renderJson 来实现,也可以更彻底通过扩展 RenderFactory 来实现切换,具体看下文档或者源代码

2022-12-01 18:21

@杜福忠 这个办法比较有新意,以前没发现有人这么玩过

2022-11-30 19:58

如果存在循环依赖调用,会有异常,一般不建议这么来用,而是让 model 仅作为承载数据的 bean

如果一定要这么来用,可以在查询代码之前,先判断一下数据是否已经存在,存在直接返回就不要再查询了

2022-11-26 17:22

这个没关系,因为无论如何,对于复合主键,你也得再次指定一次,否则这个有可能是不确定的,在 configPlugin 中的
_MappingKit.mapping(arp);
这行代码后面再多添加一行代码:
arp.setPrimaryKey("coin_watcher_log", "coin_name, coin_chain");

用了上面的方式,无论 MappingKit 中生成的代码是什么次序,最终以你自己的代码为准

jfinal 的 MappingKit 中生成的次序完全是根据反射得到的,其次序没有干预过

2022-11-24 12:14

还没试过,或许是支持的。 就算不支持,稍微改改源码也能支持,源码很少,涉及到 ssl 的地方就更少,改起来非常方便

2022-11-23 20:41

在 jfinal 中用 RedisPlugin 就好,多数 API 都封装好了,比直接用 jedis 要方便。

没有封装的 API 可以通过 Redis.call 来实现

2022-11-23 20:40

redis 是缓存,一般用于存放共享数据、热点数据,还可以辅助实现一些关系型数据库不方便实现的功能

例如,在集群架构下,存放多个节点下的账户登录信息。高并发条件下缓存库存数据等等

2022-11-15 00:07

可能是对 oceanbase 不兼容,升级一下 JDBC 驱动试一下

2022-11-12 23:54

slf4j-nop 这个就是啥也不显示,需要改依赖,而且如果使用 slf4j 需要配置:
me.setToSlf4jLogFactory();

2022-11-10 23:42

@yjjdick1990 可能加个 servlet, druid 的控制台可以通过 servlet 支持,也有可能是通过 Filter 支持,要看看它的文档

2022-10-29 17:16

要看怎么提交的,是不是发的 post 请求?

post 请求提交,注意使用 getRawData() 获取

2022-10-29 17:16

jfinal 中没有 @Table 注解,估计你是用了第三方,找找第三方的文档

2022-10-16 22:58

这几天居然没注意到这么好的分藏,点赞收藏一波

泛域名 SSL证书非常有用,目前我的 SSL 证书都还是手动一个个申请的,很不方便