3

这是来自一个流行的例子。

    <!-- Insert example, using the Account parameter class -->
<insert id="insertAccount" parameterType="Account">
  insert into ACCOUNT (
ACC_ID,
ACC_FIRST_NAME,
ACC_LAST_NAME,
ACC_EMAIL
)values (
    #{id}, #{firstName}, #{lastName}, #{emailAddress}

)

我想手动为其中一个字段插入 null 。

   <!-- Insert example, using the Account parameter class -->
<insert id="insertAccount" parameterType="Account">
  insert into ACCOUNT (
ACC_ID,
ACC_FIRST_NAME,
ACC_LAST_NAME,
ACC_EMAIL
)values (
    #{id}, #{firstName}, #{lastName}, #{null}

) 但我得到了这个例外

   org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'null'

任何人都可以帮忙。

4

1 回答 1

2

MyBatis 使用#{propertyName} 来定义一个属性。如果您使用名称“NULL”,它会查找 getNull() 和 setNull(...) 或命名参数或映射。但是,如果在您的情况下该值为 null,则可以省略该值,只要您在数据库中没有该列的默认值。

<insert id="insertAccount" parameterType="Account">
  insert into ACCOUNT (
ACC_ID,
ACC_FIRST_NAME,
ACC_LAST_NAME
)values (
    #{id}, #{firstName}, #{lastName}
);

或者以与在 SQL 命令中相同的方式输入确切的值:

<insert id="insertAccount" parameterType="Account">
  insert into ACCOUNT (
ACC_ID,
ACC_FIRST_NAME,
ACC_LAST_NAME,
ACC_EMAIL
)values (
    #{id}, #{firstName}, #{lastName}, null
);
于 2013-11-07T07:03:36.403 回答