它是如何工作的 ? null 上的点符号 - mybatis

How does it work ? Dot notation on null - mybatis

当我这样做时:
insert into .... values (...,#{object.intField, javaType=Integer},...)# 然后它正在工作 - 在数据库中,此列包含 null - 正如预期的那样。它是如何工作的?我的意思是,object 是空的,尽管它有效。神奇在哪里?

参数值从方法org.apache.ibatis.scripting.defaults.DefaultParameterHandler.setParameters(PreparedStatement)

解析

那么你要找的魔法就在这里:方法 org.apache.ibatis.reflection.MetaObject.getValue(String) 标记参数名称字符串,按点拆分,并递归调用直到结束到达链的顶端 或直到当前元素为 null.

之后我们回到一般情况:通过反射检索对象属性值:下降到 java.lang.reflect.Field.