mybatis-#,$cha
#使用
<select id="select" resultType="String" parameterType="Map">
SELECT
name AS name
FROM
user
WHERE
id = #{id}
</select>
上記のクエリ文を解放すると、次のようにグループ化されます.SELECT
name AS name, email AS email
FROM
user
WHERE
id = ?
引用符(")は、先頭と末尾に自動的に引用符を付けます.上のように?分割されたクエリーがキャッシュされ、次のクエリーに進むときにパラメータのみが変更され、可用性が向上します.
$の使用
<select id="select" resultType="String" parameterType="Map">
SELECT
name AS name
FROM
user_${id}
WHERE
id = #{id}
</select>
クエリー文は、値を入力した場合に実行され、パラメータ値が変更されるたびにクエリー文をパーティション化する必要があります.キャッシュ#がないため、パフォーマンスが低下します.
クエリ文で使用する#{}とは異なり、クエリ文には一重引用符(")が含まれていないため、次のようにテーブル名またはカラム名を動的に決定できます.
$の引用符(")をパラメータとして使用すると、割り当てられたクエリー文が意外に変更されます.
したがって、性能上の理由やsql注入の問題から、#を使用することを推奨します.
Reference
この問題について(mybatis-#,$cha), 我々は、より多くの情報をここで見つけました https://velog.io/@salgu1998/mybatis-차이テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol