今天在使用mybatis處理數據庫的時候,突然拋出了上述異常,讓我感到很驚訝,因為在處理save的時候,在Mybatis的配置文件中,我根本就沒有使用到ognl表達式,系統怎么會拋出上述異常。而且之前也是這么使用的,也沒見拋出上述異常。然后查看操作數據庫的Mybatis的配置文件,倒是找到了幾個錯誤,但是都不是引起這個異常的原因。然后,再仔細查看這個配置文件,突然之間,發現了,在該配置文件:
<!-- save -->
<insert id="save">
insert into qa_sampling(s_id ,
s_mil_id ,
s_samplingPackage ,
s_samplingWeight ,
s_samplingPerson_id ,
s_samplingCardFill ,
s_samplingDate ,
s_createTime)
values(#{s_id} ,
${s_mil.mil_id} ,
#{s_samplingPackage} ,
#{s_samplingWeight} ,
#{s_samplingPerson.u_id} ,
#{s_samplingCardFill} ,
#{s_samplingDate} ,
#{s_createTime})
</insert>
${s_mil.mil_id} , 這一處,居然是使用$,難怪系統將其作為表達式進行解析,將其修改成”#”之后,一切OK,上述異常成功解決。現,貼出正確的寫法:
<!-- save -->
<insert id="save">
insert into qa_sampling(s_id ,
s_mil_id ,
s_samplingPackage ,
s_samplingWeight ,
s_samplingPerson_id ,
s_samplingCardFill ,
s_samplingDate ,
s_createTime)
values(#{s_id} ,
#{s_mil.mil_id} ,
#{s_samplingPackage} ,
#{s_samplingWeight} ,
#{s_samplingPerson.u_id} ,
#{s_samplingCardFill} ,
#{s_samplingDate} ,
#{s_createTime})
</insert>
