JAVAEEフレームワークを見る14-Mybatisアノテーション開発動的SQLステートメント

Mybatisアノテーションは動的SQLステートメントを開発しました

ガイド:
mybatisアノテーションを使用して動的SQLを開発することは煩雑で不便なため、お勧めしません。
この記事では、クエリを使用して動的SQLステートメントを説明します。
注:
Mybatisの動的SQLステートメントの開発は、3つの書き込み方法に分けることができます。 :

  1. スクリプト動的SQLステートメント
  2. メソッドで定義されたSQL
  3. 構造化SQL
0.ケース環境:

a。エンティティークラスユーザーエンティティークラス
ここに画像の説明を挿入
の属性はgetおよびsetメソッドを
提供しますエンティティークラスはtoString()メソッドを提供します

b。インターフェースIUserDao

ここに画像の説明を挿入

c。要件
動的SQL 使用するには、IUserDaoインターフェイスでfindUserByConditionメソッドを実行します。username
属性に値がある場合は、username = valueをクエリ条件に追加します。sex 属性に値
がある場合、クエリ条件は販売者のsex = valueでもあります。
動的SQL実装:

1.スクリプト動的SQLステートメント

ここに画像の説明を挿入
XMLの動的SQLステートメントを注釈に直接コピーし、スクリプトタグを使用してそれを含めます。

2.メソッドでSQLステートメントを定義する

2.1動的SQLステートメントを生成するためのクラスを定義する必要があり、
findUserByCondition()メソッドがSQLステートメントを生成するためのクラス内のメソッドを定義する必要があります。

ここに画像の説明を挿入

2.2 SELECT()、FROM()、WHERE()などを使用して、メソッドでSQLステートメントを動的に生成できます。
ここに画像の説明を挿入

2.3このクラスのこのメソッドを、インターフェースのfindUserByCondition()メソッドに構成します。
ここに画像の説明を挿入

このメソッドで使用されるクエリのSQLステートメント
が、UserDynaSqlProviderクラスのfindUserByConditionSqlメソッドによって提供されることを示します

3.構造化SQLステートメント

注:このメソッドは、SQLステートメントをアセンブルするときの構文が少し異なることを除いて、メソッド2とまったく同じ
です
。3.1 動的SQLステートメントを生成するために特別にクラスを定義する必要があります。また、SQLステートメントを生成するために、findUserByCondition()メソッド専用にクラスにクラスを定義します。メソッド。
ここに画像の説明を挿入

3.2 SELECT()、FROM()、WHERE()などを使用して、メソッドでSQLステートメントを動的に生成できます。
ここに画像の説明を挿入

3.3このクラスのこのメソッドを、インターフェースのfindUserByCondition()メソッドに構成します。
ここに画像の説明を挿入

このメソッドで使用されるクエリのSQLステートメントが、UserDynaSqlProviderクラスの
findUserByConditionSqlメソッドによって提供されることを示します。
テスト:
テストコードが次のとおりの場合:
ここに画像の説明を挿入

次に、プログラムによって生成されるSQLステートメントは次のとおりです。

ここに画像の説明を挿入

結果は次のとおりです。

ここに画像の説明を挿入

テストコードが次の場合:
ここに画像の説明を挿入

次に、プログラムによって生成されるSQLステートメントは次のとおりです。
ここに画像の説明を挿入

結果は次のとおりです。
ここに画像の説明を挿入

公開された78件の元の記事 賞賛された30件 ビュー3629

おすすめ

転載: blog.csdn.net/ZMW_IOS/article/details/105276920