Java Mybatisの中の${}と啢{の違いは詳しく説明します。
はい、本当に開発をしても一年近くになります。いつも他の人のブログを見ています。自分は書くのが億劫で、ブログも書けないので、今日はゆっくりとブログを書く練習を始めましょう。この間ちょうど会社でこんな問題に遭いました。
一、例を挙げて説明する
二、違います
動的SQLはmybatisの強力な特性の一つであり、他のORMフレームワークよりも優れている重要な原因の一つでもある。mybatisはsql文をプリコンパイルする前に、sqlを動的解析し、BoundSqlオブジェクトとして解析します。ここで動的SQLを処理します。ダイナミックSQLの解析段階では、钻{}と${}は違った表現があります。
以上より、{}変数の代替段階は動的SQL解析段階であり、啳{}変数の置換はDBMSである。
これはㄟ{}と{}私たちが見られる主な違いです。このほかに、次のような違いがあります。方式はsql注入を大きく防ぐことができます。 $方式ではSql注入を防ぐことができません。 $方式は、一般的にデータベースオブジェクトに着信するために使用される。例えば、着信テーブル名。 。.一般的に菗が使えるものは使わないでください。 だから私達はmybatisを使う時に、できるだけ〓の方式を使います!!ここはみんなの注意すべきところです。
ここで、Mybatisの中の${}と菗の使い分けについて詳しく解説した文章を紹介します。もっと関連したMybatisを紹介します。 ${ } #{ } 違いの内容は私達の以前の文章を検索してください。または下の関連記事を引き続きご覧ください。これからもよろしくお願いします。
一、例を挙げて説明する
select * from user where name = "dato";
select * from user where name = #{name};
select * from user where name = '${name}';
普通、私たちはこの中に何か違いがあることに気づかないです。これらのsqlはすべて私達の目的を達成することができますので、datoという名前のユーザーを調べに行きます。二、違います
動的SQLはmybatisの強力な特性の一つであり、他のORMフレームワークよりも優れている重要な原因の一つでもある。mybatisはsql文をプリコンパイルする前に、sqlを動的解析し、BoundSqlオブジェクトとして解析します。ここで動的SQLを処理します。ダイナミックSQLの解析段階では、钻{}と${}は違った表現があります。
select * from user where name = #{name};
皱{}ダイナミック解析の際、パラメータマーカーに解析されます。解析後の文は以下の通りです。
select * from user where name = ?;
じゃ私たちが${}を使う時
select * from user where name = '${name}';
${}ダイナミック解析の際に、私達が入ってきたパラメータをString文字列として私達の文に充填すると、次のような文になります。
select * from user where name = "dato";
プリコンパイル前のSQL文にはすでに変数が含まれていません。完全に定数データです。私たちが普通に変数がないsqlに相当します。以上より、{}変数の代替段階は動的SQL解析段階であり、啳{}変数の置換はDBMSである。
これはㄟ{}と{}私たちが見られる主な違いです。このほかに、次のような違いがあります。
ここで、Mybatisの中の${}と菗の使い分けについて詳しく解説した文章を紹介します。もっと関連したMybatisを紹介します。 ${ } #{ } 違いの内容は私達の以前の文章を検索してください。または下の関連記事を引き続きご覧ください。これからもよろしくお願いします。