質問1.は、二次キャッシュをMyBatisの際に注意を払うする必要
二次キャッシュに格納されるデータの量が大きすぎではありません。二次キャッシュが同時に同じテーブルの複数の操作名前空間の名前空間に基づいて、二次キャッシュが推奨されていません。テーブル内のデータの名前空間を更新、挿入または削除したとき、別の名前空間のキャッシュを更新しませんので。この時、キャッシュデータにスペースまたはクエリに別の名前を選択します。
差2.resultTypeとこのresultMap
文書内のMyBatisの参照(バージョン3.5.1)に記載されています
個人的な理解と概要
resultTypeと
我々はresultTypeとを使用している場合、Javaでオブジェクトを一致させることができ、結果からデータベースを照会する場合。例えば、データのクエリの量は、この時点でresultTypeと=「整数」、resultTypeと=「文字列」、その後、人の名前をチェックしてください
このresultMap
我々は結果が一致の種類に応じ見つかりませんでしたチェックアウトするとき、私たちは、クエリのこのresultMapパッケージの結果を使用することができます。例:人の名前と給与が2つのテーブル名、給与に格納されている私たちは、このresultMapをカスタマイズすることができます
<resultMap id="自定义" type="查询时关联的主表">
<result .... />
...
</resultMap>
アソシエーションと3.collection差
コレクション
そのような教師と生徒との関係など、多くは、多くの1つです。私たちは、データベースクエリの結果セットからMyBatisのを定義するとき、我々は、対応するコレクションこのresultMapパッケージラベルは互いにおよびJavaオブジェクトに対応できるようにすることを可能にすることができます。
教師と生徒の間の例対多の関係の場合は、対応するこのresultMapをパッケージ、コレクションをトラバースするために使用することができます。
あなたもトラバースにラベルコレクションを使用することができたときにバッチでは、更新、挿入を削除します。
協会
私たちは1対1に会ったとき同様に、関連タグは、結果セットをラップ使用することができます
PreparedStatementの差分4.Statement
コンパイラは、SQL文を実行するたびに、データベース内で実行されるデータベースをSQL文を送るためのStatementオブジェクト。
PreparedStatementのは、より良い安全性と効率性、プリコンパイルされたSQL文を実行されます。
5. MyBatisのMapper.xmlプロファイル差{#}¥{}と?
#{}は、データの列に加え、二重引用符の中に入ってくるデータを解析する、#{}やり方は、大きく注入SQLに防止することができます
$ {}着信データを直接SQL {} $ SQL注入は、慎重にする必要性を防止することができないで生成される表示します
6。