Mybatis - 类似@PostConstruct

时间:2017-01-03 21:03:46

标签: java mybatis

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

从我的研究中,它暗示MyBatis总是调用无参数构造函数。如果缺少这样的构造函数,它会尝试调用带有与数据库返回结果匹配的参数的构造函数。

我认为只有这样才能创建自定义TypeHandler。

1 个答案:

答案 0 :(得分:0)

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

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

上下文指向映射的结果对象,然后您可以在对象上执行任何操作。

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

以这种方式调用:session.list("statement", params, resultHandler); 这会覆盖默认的resultHandler然后如果需要结果列表,那么resultHandler实现必须将对象添加到列表中。

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