mybatis の # と $ の主な違いは次のとおりです: # 受信パラメータは SQL の文字列として表示されます、 # このメソッドは SQL インジェクションを大幅に防ぐことができます; $ 受信パラメータは、SqL 値の受信として直接表示されます ($ メソッド) SQL インジェクションを防ぐことはできません。
MyBatis は、カスタマイズされた SQL、ストアド プロシージャ、および高度なマッピングをサポートする優れた永続層フレームワークです。 MyBatis は、ほとんどすべての JDBC コード、パラメータの手動設定、結果セットの取得を回避します。 MyBatis は、単純な XML または注釈を使用して、ネイティブ情報を構成およびマッピングし、インターフェースおよび Java POJO (Plain Ordinary Java Object、通常の Java オブジェクト) をデータベース内のレコードにマッピングできます。
動的 SQL は mybatis の主な機能の 1 つであり、マッパーで定義されたパラメータが XML に渡された後、mybatis はクエリを実行する前にそれらを動的に解析します。 Mybatis は、動的 SQL をサポートする 2 つの構文 #{} と ${} を提供しており、どちらも必要なパラメーターを SQL ステートメントに動的に渡します。
#mybatis の # と $ の違いは何ですか
1. 渡されたパラメータは SQL では異なって表示されます #渡されたパラメータは SQL の文字列として (文字列として) 表示され、自動的に渡されたデータには二重引用符が追加されます。 例: 次の SQL を使用しますselect id,name,age from student where id =#{id}
select id,name,age from student where id ="1"
select id,name,age from student where id =${id}
select id,name,age from student where id =1
2、# は SQL インジェクション (ステートメントのスプライシング) のリスクを防ぐことができますが、$ は SQL インジェクションを防ぐことはできません。
3. $ メソッドは通常、テーブル名などのデータベース オブジェクトを渡すために使用されます。
4. ほとんどの場合、# がよく使用されます。一般に、# が使用できる場合は、$ を使用しないでください。ただし、場合によっては、$ を使用する必要があります。例: 動的パラメーターによる順序を使用する場合MyBatis を並べ替えるときは、# ではなく $ に注意する必要があります。
以上がこの記事の全内容です、皆様の学習のお役に立てれば幸いです。さらにエキサイティングなコンテンツについては、PHP 中国語 Web サイトの関連チュートリアルのコラムに注目してください。 ! !
以上がmybatisの#と$の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。