在MyBatis创建对象后是否可以调用某些方法?我的目标是根据MyBatis设置的值(是否存在(null
)设置其他参数。
从我的研究中,它暗示MyBatis总是调用无参数构造函数。如果缺少这样的构造函数,它会尝试调用带有与数据库返回结果匹配的参数的构造函数。
我认为只有这样才能创建自定义TypeHandler。
答案 0 :(得分:0)
TypeHandler范围是1列,不知道映射。
我宁愿使用ResultHandler:在映射每个结果行后调用它们。
上下文指向映射的结果对象,然后您可以在对象上执行任何操作。
如果结果映射使用集合,则存在限制(因为多个结果行可能与单个对象匹配)。
以这种方式调用:session.list("statement", params, resultHandler);
这会覆盖默认的resultHandler然后如果需要结果列表,那么resultHandler实现必须将对象添加到列表中。
如果您正在使用映射器接口,这似乎是Spring-boot(使用@Mapper注释标记的映射器)的情况,那么只需将结果处理程序作为参数传递,mapper方法将看起来像void myStatement(Object param, ResultHandler resultHandler);