今天在使用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>