Mybatis - 类似于@PostConstruct

Mybatis - something like @PostConstruct

MyBatis创建对象后是否可以调用一些方法?我的目标是根据 MyBatis 设置的值(存在或不存在(null)设置附加参数。

根据我的研究,这意味着 MyBatis 总是调用无参数构造函数。如果缺少这样的构造函数,它会尝试调用参数与数据库返回结果相匹配的构造函数。

我认为唯一的方法是创建自定义 TypeHandler。

TypeHandler 范围是 1 列并且不知道映射。

我宁愿使用 ResultHandler:在映射每个结果行后调用它们。

上下文指向映射的结果对象,然后您可以对该对象做任何您想做的事情。

如果结果映射使用集合,则存在限制(因为多个结果行可能匹配单个对象)。

这样称呼:session.list("statement", params, resultHandler); 这将覆盖默认的 resultHandler 然后如果您需要结果列表,则 resultHandler 实现将必须将对象添加到列表中。

如果您正在使用映射器接口,Spring-boot 似乎就是这种情况(用@Mapper 注释标记的映射器),那么只需传递结果处理程序作为参数,映射器方法看起来像 void myStatement(Object param, ResultHandler resultHandler);