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注入の問題から、#を使用することを推奨します.