MyBatis使用中遇到的问题

  1. 更新数据的时候,发现会未进行更新输入的字段会以 null 覆盖字段默认值(或者原值),起初认为是数据库配置有问题,再三检查无误,才想到可能是映射文件写的有问题。

    果不其然,未进行更新输入的字段会插入 null ,而不是默认不做修改,要做到默认不修改,需要使用动态 sql 语句,如 <if> 标签。

    总而言之,没数值的字段不使用动态 sql 语句直接写到 sql 语句中,就相当于插入 null ,而不是默认不修改。

    这是一个非常低级的错误,别再犯了。

  2. myBatis 框架中,写 mapper 接口时,是不可以进行方法的重载的。

    因为 myBatis 动态代理寻找策略是 全限定名 + 方法名,不涉及参数。

    所以不支持重载。

0%