Mybatis技術環境を構築する

4261 ワード

1、Mybatisを使用する前に、Mybatisフレームをプロジェクトに追加する必要があります.主な手順は以下の通りです.
  • プロジェクトのためのMybatis開発パッケージとデータベースドライバパッケージを追加します.
  • srcにMybatisプロファイルSql MapConfig.xmlを追加します.
  • Sql MapConfig.xmlを変更し、データベース接続パラメータ
  • を指定します.
  • Mybatis APIを用いてプログラムし、Sql Sessionのインスタンス
  • を取得する.
    2、Sql Sessionオブジェクトを取得する
                    String cfg = "SqlMapConfig.xml";
            Reader reader = 
                Resources.getResourceAsReader(cfg);
            SqlSessionFactoryBuilder builder=
                new SqlSessionFactoryBuilder();
            SqlSessionFactory factory =
                builder.build(reader);
            SqlSession session = 
                factory.openSession();
            Connection conn=session.getConnection();
            System.out.println(conn);
            System.out.println(conn.getMetaData()
                    .getDatabaseProductName());
            conn.close();
            session.close();        
    3、Sql Sessionオブジェクトを取得すると、データテーブルを添削して調べることができます.使用手順は以下の通りです.
  • データテーブルに基づいてエンティティクラス(Java POJO)
  • を作成する.
  • Sql Map.xmlマッピングファイルを作成し、SQL動作とマッピング情報を定義する
  • Sql Session対応を取得し、添削検索を実行する
  • .
  • 提出トランザクション(DMM)動作
  • Sql Sessionオブジェクトリソースを解放する
  • 4、Sessionの添削調査
     
            session.insert("addDept",dept);
            session.commit();
            session.close();
     
            session.update("updateDept",dept);
            session.commit();
            session.close();
     
            session.delete("deleteById",10);
            session.commit();
            session.close();
        
            session.selectone("findById",10);//     
            session.close();
        
            session.selectList("findAll");
            session.close();
    5、Sql Sessionは直接Sql文の実行をサポートします.
    Mapperインターフェースの要求については、パラメータを重複させることはできません.一つしかないです.複数のパラメータは、値の対象を使って照会してこそ、戻り値があります.
    だからMapperはDAOではなく、Daoがなくて便利です.
    6、Mybatisを利用してページ別の照会を実現する.
    Sql SessionのselectList()メソッドを使用する場合は、RowBoundsセパレータパラメータを指定し、指定範囲のレコードを照会することができます.
    RowBoundsコンストラクタ
    offsetは、レコードの先頭行を指定し、0から開始します.
    limit指定キャプチャ記録の数
    selectList()の使い方
    sql Session.selectList(SQLのID、パラメータ、RowBoundsオブジェクト)
    ヒント:
    Mybatis改ページはメモリ改ページに基づいており、原理的にはすべての記録を調べ、JDBCベースのabsoluute()とnext()法に基づいて取得部分を特定して記録するので、大量のデータが発生した場合にはMybatisを使用することは推奨されない.開発者がページ別クエリーのSQL文を指定したり、Mybatisを拡張して使う必要があります.
    7、Mapperマッパーを使用する
    Mapperマッパーは、開発者がバインディングステートメントマッピングを作成するインターフェースであり、マッパーインターフェースの例はSql Sessionから得ることができる.
    try{
        DeptMapper mapper=session.getMapper(DeptMapper.class);
        //do work
    }finally{
        session.close();
    }
    Mapperインターフェースのメソッド名はSlqMap.xmlのSQLのidと一致しています.
    8、ResultMapマッピング定義
    Sql Map.xml定義<select>操作の場合、クエリの結果フィールド名とJava POJO属性が一致しない場合は、<resultMap>要素表示の指定マッピング関係が必要です.例えば
    <select id="findAll1" resultMap="deptMap">
        select DEPTNO,DNAME,LOC from DEPT
    </select>
    
    <resultMap id="deptMap" type="org.tarena.entity.Dept">
        <result property="no" column="DEPTNO"/>
        <result property="name" column="DNAME"/>
        <result property="loc" colum="LOC"/>
    </resultMap>