MyBatisでデータベースのNULL値をどのように扱いますか?
MyBatis でデータベースの NULL 値を扱う方法はいくつかあり、if、choose、when などのタグを使用して処理することができます。
- NULL値を処理するためにifタグを使用します。
<select id="getUserById" parameterType="int" resultType="User">
SELECT * FROM user WHERE id = #{id}
<if test="name != null">
AND name = #{name}
</if>
</select>
- NULL値を処理する際には、chooseまたはwhenタグを使用してください。
<select id="getUserById" parameterType="int" resultType="User">
SELECT * FROM user WHERE id = #{id}
<choose>
<when test="name != null">
AND name = #{name}
</when>
<otherwise>
AND name IS NULL
</otherwise>
</choose>
</select>
- NULL値を処理する際には、${}占位符を使用してください。
<select id="getUserByName" parameterType="String" resultType="User">
SELECT * FROM user WHERE name = '${name}'
</select>
${}占位符を使用する場合、SQLインジェクションの問題に注意する必要があります。パラメータを処理する際には、#{name}を使用することをお勧めします。