1。MyBatis Dynamic SQLとは何ですか
ダイナミックを見ると、これは変更できるSQLステートメントであると考えるべきです。
MyBatisの動的SQLは、SQLステートメントに特定のロジックを簡単に実装するのに役立つOGNL式に基づいています。
2。MyBatis Dynamic SQLを使用する前の準備
a。データベーステーブル
b。クラスを作成します
3.MyBatisダイナミックSQLを使用すると、まずいくつかの属性値を知る必要があります
1。挿入
SelectKey:SQLステートメントの前後に実行されたSQLステートメント
keycolumn:対応するフィールド名またはエイリアス
keyproperty:属性名またはマップキー値エンティティクラス
注文:実行前または実行後に実行します
resultType:リターン結果のタイプ
最初の方法:最も簡単な動的SQL挿入
コース値(seq_course.nextval、#{coursecode}、#{courseName})に挿入コースからmax(id)curridを選択しますテスト
テスト結果
2番目の方法:それほど多くのフィールドを挿入したくなく、CourseNameフィールドを挿入したくない場合、最初の方法は間違いなく不可能です。
コース(ID、courseCode、courseName)値(seq_course.nextval、#{coursecode}、#{coursename})に挿入テストと結果
このことから、CourseCodeフィールドを挿入したくないときにこの方法を実現できることがわかります。
タイトルが再びここにあります。最後のフィールドを空に変えたい場合、または両方のフィールドを空にしたい場合はどうなりますか
最後のフィールドは空になります
コンソールの最初の質問マークの背後にコンマがあるようです
両方のフィールドが空になることを試みます
まだコンマがあります
上記の状況の理由は、フィールドを挿入したくない場合、コンマを削除しなかったからです。次に、3番目の方法を紹介します。
3番目の方法は、余分なコンマを除去することです
この方法は、トリムを導入する必要があります
トリムにはいくつかのプロパティもあります
プレフィックス:プレフィックスを追加します
prefixOverRides:プレフィックスをオーバーライドします
接尾辞:接尾辞を追加します
suffixoverrides:接尾辞をオーバーライドします
id、coursecode、coursenameseq_course.nextval、#{coursecode}、#{coursename}見てください、問題は解決されました
プロジェクトに取り組むとき、データベースにデータを挿入することがよくあります。複数のピースを同時に挿入したい場合があります。それでは、MyBatisを使用して複数のデータを挿入するにはどうすればよいですか?
ここでは、いくつかの問題を解決する必要があります
1.テーブル構造をどのようにコピーしますか
テーブルCourse02を作成して、select * from Course
この声明は非常に馴染みがありますか?はい、Course02テーブルは、コーステーブルのテーブル構造をコピーするだけでなく、コーステーブルのコンテンツもコピーします。
2。コーステーブルコンテンツの代わりにコーステーブル構造のみをコピーするにはどうすればよいですか
テーブルCourse03を作成しますselect * from Course 1!= 1;
3。だから、挿入するとき、それはこれと同じですか?
course03 select * from courseに挿入します。
答えは同じです
4.複数のステートメントを挿入する方法
insert into course03select '6', 'yc06', 'data structure 06' from dual unionselect '7', 'yc07', 'data structure 07' from dual unionselect '8', 'yc08', 'data structure 08' from dual unionselect '8', 'yc08', 'data structure 08' from dual
SQLステートメントが利用可能になったので、構成ファイルに挿入できます
courseSelect#{courses.id}、#{courses.coursecode}、#{courses.coursename} dualから挿入します2。変更します
1.トリムを使用します。前述のように、属性のsuffixoverridesのために、トリムにdifixを使用できます
コースSetCourSeCode =#{coursecode}、coursename =#{coursename}ここで、id =#{id}2。ステートメントでセットを置き換えることができるセットを使用し、接尾辞も削除できます。
coursecoursecode =#{coursecode}、coursename =#{coursename} where id =#{id}3.変更するときは、選択的な変更も行います。値を変更して、変更なしで値と一致させることを望まない場合があります。
選択は複数のifに相当します
最初のものはifと同等であり、2番目のものはelseと同等です。
それ以外の場合は、それ以外の場合は等しくなります
coursecoursecode =#{coursecode}、coursecode = coursecode、coursename =#{coursename}、coursename = coursename、where id =#{id}上記は、MyBatis Dynamic SQLのコンテンツ全体が紹介されたものです。私はそれが誰にでも役立つことを願っています!