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

时间:2016-11-29 16:43:50

标签: java mybatis

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

1 个答案:

答案 0 :(得分:0)

org.apache.ibatis.scripting.defaults.DefaultParameterHandler.setParameters(PreparedStatement)

方法解析参数值

然后您正在寻找的魔法就在这里:method org.apache.ibatis.reflection.MetaObject.getValue(String) tokenizes参数名称字符串,在点上分割,并递归调用,直到到达链的末尾或直到当前元素为空

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