mybatis の # と $ の違い
1. # 受信データを文字列として扱い、自動的に受信するデータに二重引用符を追加します。例: #user_id# で並べ替えます。渡された値が 111 の場合、SQL に解析されたときの値は「111」で並べられます。渡された値が ID の場合、解析された SQL は「id」で並べられます。
2. $ 受信データを直接表示し、SQL で生成します。例: $user_id$ で並べ替え、渡された値が 111 の場合、SQL に解析されたときの値は user_id で並べ替えられます。 渡された値が ID の場合、解析された SQL は ID で並べ替えられます。
3 #この方法により、SQL インジェクションを大幅に防ぐことができます。
4.$メソッドではSQLインジェクションを防ぐことはできません。
5. $ メソッドは通常、テーブル名などのデータベース オブジェクトを渡すために使用されます
6. 通常使用できる場合は、$ を使用しないでください。
<sql id="condition_where"> <isNotEmpty property="companyName" prepend=" and "> t1.company_name like #companyName# </isNotEmpty> </sql>
mybatis の # と $ について詳しくは、関連するものをご覧ください。 $ の違いや SQL インジェクションを防ぐ方法に関する記事は、PHP の中国語 Web サイトに注目してください。