Mybatisフレームワーク----->(1)Mybatisフレームワークとは何ですか?jdbcプログラミングの欠陥に対するその主な解決策

1、3層アーキテクチャ

1. 3層構造に対応する責任:
  1. インターフェース層(ビュー層):主な機能は、ユーザーの要求データを受信し、処理結果を表示することです
  2. ビジネスロジック層:ページからデータを受信し、ビジネスロジックを計算し、データアクセス層を呼び出してデータを取得します。
  3. データアクセス層:データベースを扱う場合、主にデータの追加、削除、変更、チェックを実現します。データベースに保存されているデータをビジネス層に送信し、ビジネス層で処理されたデータをデータベースに保存します。
2.3つのレイヤーに対応するパッケージ:
  • インターフェース層:コントローラーパッケージ(サーブレット)
  • ビジネスロジック層:サービスパッケージ(XXXServiceクラス)
  • データアクセス層:daoパッケージ(XXXDaoクラス)
3.3つのレイヤー間の処理要求と相互作用の関係:

ユーザー<->インターフェース層<->ビジネスロジック層<->データアクセス層(永続層)<->データベース

4.3つのレイヤーに対応する処理フレームワーク:
  • インターフェース層:サーブレット---- springmvcフレームワーク
  • ビジネスロジック層:サービスクラス-Springフレームワーク
  • データアクセス層:daoクラス-mybatisフレームワーク

第二に、Mybatisフレームワークとは何ですか

1.Mybatisフレームワーク
  • これは、jdbcを内部にカプセル化する永続層フレームワークです。プログラマーは、ドライバーのロード、接続の作成、ステートメントの作成、接続のクローズなどのプロセスを処理することなく、SQLステートメント自体に注意を払うだけで済みます。
  • Mybatisは、主にxmlまたはアノテーションを介して実行されるSQLステートメントを構成し、インスタンスオブジェクトとSQLステートメントの動的パラメーターをマップして最終的に実行されるSQLステートメントを生成し、最後にSQLステートメントがMybatisフレームワークによって実行されます。 Javaオブジェクトにマップして戻ります。
2、jdbcプログラミング
public void findStudent(){
    
    
    Connection conn = null;
    Statement st = null;
    ResultSet rs = null;

    try {
    
    
        //注册MySQL驱动
        Class.forName("com.mysql.jdbc.Driver");
        //连接数据的基本信息
        String url = "jdbc:mysql://localhost:3306/test";
        String username="root";
        String password = "123456";
        //创建连接对象
        conn = DriverManager.getConnection(url, username, password);
        //保存查询结果
        List<Student> stuList = new ArrayList<>();
        //创建Statement,用来执行SQL语句
        st = conn.createStatement();
        //执行查询,创建记录集
        rs = st.executeQuery("select * from text ");
        while (rs.next()){
    
    
            Student stu = new Student();
            stu.setId(rs.getInt("id"));
            stu.setName(rs.getString("name"));
            //从数据库取出的数据转为Student对象,封装到List集合中
            stuList.add(stu);
        }
    } catch (Exception e) {
    
    
        e.printStackTrace();
    } finally {
    
    
        try {
    
    
            //关闭资源
            if (rs != null) ;{
    
    
                rs.close();
            }
            if (st != null) {
    
    
                st.close();
            }
            if (conn != null) {
    
    
                conn.close();
            }
        } catch (Exception e) {
    
    
            e.printStackTrace();
        }
    }
}
3.jdbcプログラミングの使用の欠陥
  • コードが多く、繰り返しコードが多いため、開発効率が低くなります
  • Connection、Statement、ResultSetオブジェクトの作成と破棄に注意を払う必要があります
  • ResultSetクエリの結果をオブジェクトに変換するには、それをリストコレクションとしてカプセル化する必要があります
  • ビジネスコードと運用データベースコードが混在
4.Mybatisによって解決された主な問題
  1. データベースドライバを登録します。次に例を示します。
Class.forName("com.mysql.jdbc.Driver");
  1. 開発者がこれらのオブジェクトを作成せずに、Connection、Statement、ResultSetを作成する機能を提供します
  2. 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); 
}
  1. Connection、Statement、ResultSetを閉じることなくリソースを閉じる機能を提供します
  2. 開発者:SQLステートメントを提供-> MybatisプロセスSQL->開発者はリストコレクションまたはJavaオブジェクト(テーブル内のデータ)を取得します
5.Mybatisの2つの機能
  • (1)SQLマッパー:SQLマッピング:

データベーステーブル内のデータの行をJavaオブジェクトにマップできます。このオブジェクトを操作することは、テーブルのデータを操作することと同じです。

  • (2)データアクセスオブジェクト(DAO):データアクセス

データベースの追加、削除、変更、およびチェック

おすすめ

転載: blog.csdn.net/hcz666/article/details/113059475