Mybatisの中の$


MybatisのMapper.xml文のparameterTypeはSQL文に2つの方法があります。#{} ${}私たちがよく使っているのは、この方法はSQL注入を防ぐことができるからです。簡単に言ってください。このようなSQL文はあらかじめコンパイルされています。

select * from student where student_name = #{name} 
事前に翻訳すると、パラメータマーカーに動的に解析されますか?

select * from student where student_name = ?
を使って動的に解析するとパラメータ文字列が入ってきます。

select * from student where student_name = 'lyrics'
まとめ:
このような採値はSQL文をコンパイルしてから取るものです。
${}これは値を取ってからSQL文をコンパイルします。
  • 〓〓方式は大幅にsql注入を防止することができます。
  • $方式ではSql注入を防ぐことができません。
  • $方式は、一般的にデータベースオブジェクトに着信するために使用される。例えば、着信テーブル名。
  • 普通は〓を使うことができますのをやめてください。
  • activitiワークフローの例を挙げます。
    
    select * from${prefix}ACT_HI_PROCINST where PROC_INST_ID_ =#{processInstanceId}
    ここでMybatisの中の$と菗の区別と使い方についての文章を紹介します。これに関連して、mybatis${}と葑{}の違いと使い方については、以前の文章を検索してください。または次の関連記事を引き続きご覧ください。これからもよろしくお願いします。