MyBatisフレームワーク:MyBatisは、jdbcを内部的にカプセル化する、優れたJavaベースの永続層フレームワークです。開発者はSQLステートメント自体に注意を払うだけでよく、ドライバーのロード、接続の作成、ステートメントの作成、接続のクローズを行う必要はありません。 。
コンテンツ
フレーム定義
フレームワーク(フレームワーク)は、システムの全体または一部の再利用可能な設計であり、抽象的なコンポーネントのセットおよびコンポーネントインスタンス間の相互作用の方法として表されます。別の人は、フレームワークはカスタマイズ可能なアプリケーションスケルトンおよびテンプレートであると考えています。アプリケーション開発者による。
簡単に言えば、フレームワークは実際には半完成のソフトウェアであり、独自のシステムを完成させるために使用できるコンポーネントのセットです。別の視点からステージを組み立てるには、ステージで演奏します。フレームワークに基づいて、完了したい機能を追加します。
フレームワークは、安全で再利用可能で、継続的にアップグレードされるソフトウェアです。
フレームワークが解決する問題
フレームワークが解決すべき最も重要な問題は技術の統合です。J2EEフレームワークにはさまざまな技術、さまざまなアプリケーションがあり、システムはさまざまな技術を使用して問題を解決します。J2EEからさまざまなテクノロジーを選択する必要があり、テクノロジー自体の複雑さはより大きなリスクにつながります。
企業がソフトウェアプロジェクトを開発する場合、主な目的はビジネス上の問題を解決することです。そのためには、企業がテクノロジー自体に責任を持つだけでなく、ビジネス上の問題を解決する必要があります。これは、ほとんどの企業が達成できないことです。フレームワークは関連技術を統合し、企業開発はビジネス分野に焦点を当てることができます。別の側面は、開発効率を提供することができます。
JDBCを使用するデメリット
- より多くのコード、低い開発効率
- 接続、ステートメント、ResultSetオブジェクトの作成と破棄に注意を払う必要があります
- ResultSetクエリの結果は、それ自体でリストとしてカプセル化する必要があります
- より反復的なコード
- ビジネスコードとデータベース操作が混在している
MyBatisを使用する利点
- JDBCの使用の複雑さを軽減します
- 繰り返し作成する接続、ステートメントを書く必要はありません
- 近いリソースコードを書く必要はありません
- 結果データを表すためにJavaオブジェクトを直接使用する
- 開発者がSQL処理に集中できるようにします。他の気晴らしはMyBatisによって行われます
MyBatisの機能アーキテクチャ
Mybatisの機能アーキテクチャを次の3つのレイヤーに分割します。
1. APIインターフェースレイヤー:外部使用のために提供されたインターフェースAPIであり、開発者はこれらのローカルAPIを介してデータベースを操作します。インターフェイス層は呼び出し要求を受信するとすぐに、データ処理層を呼び出して特定のデータ処理を完了します。
2.データ処理層:特定のSQL検索、SQL解析、SQL実行、実行結果マッピング処理などを担当します。その主な目的は、呼び出し要求に従ってデータベース操作を完了することです。
3.基本サポートレイヤー:接続管理、トランザクション管理、構成の読み込み、キャッシュ処理など、最も基本的な機能サポートを担当します。これらはすべて一般的なものであり、最も基本的なコンポーネントとして抽出されます。上位のデータ処理層に最も基本的なサポートを提供します。
MyBatisフレームワークプロセス
MyBatis(以前のiBatis)は、一般的なSQLクエリ、ストアドプロシージャ、および高度なマッピングをサポートする永続化レイヤーフレームワークです。
1.データベースドライバを登録します
Class.forName(“com.mysql.jdbc.Driver”)
2. JDBCで使用する必要のあるConnection、Statement、ResultSetオブジェクトを作成します
3. xmlからsqlを取得し、sqlステートメントを実行して、ResultSetの結果をJavaオブジェクトに変換します。
List<Student> list = new ArrayLsit<>();
ResultSet rs = state.executeQuery(“select * from student”);
while(rs.next){
Student student = new Student();
student.setName(rs.getString(“name”));
student.setAge(rs.getInt(“age”));
list.add(student);
}
4.リソースを閉じる
ResultSet.close()、Statement.close()、Conenection.close()