mybatisでmapperエージェントメソッドを用いてdaoを開発する
2959 ワード
前言:エージェント開発を理解する前に、元の開発を理解する必要があります.対比を形成してから、その優劣を一反三で発見することができるからだ.ブロガーにはmybatisの原始dao開発方式についてのブログがあります.みんなに助けて欲しいhttps://blog.csdn.net/My_name_is_ZwZ/article/details/82926601
mapperエージェント開発とは?
dao層を開発する方法.
なぜmapperエージェントメソッドを使用してdaoを開発するのですか?
原始的な方法開発daoの弊害を補うために.たとえば: daoインタフェース実装クラスメソッドには大量の重複コードが存在する. sqlSessionメソッドを呼び出すと、satementのidがハードコーディングされます. sqlSessionの方法では,入力されたパラメータがObjectタイプであることが要求されているが,パラメータを間違えた場合,コンパイルはエラーを報告せず,実行時にエラーを報告し,開発効率を低下させ,開発に不利である.
mapperエージェントを使用してdaoを開発するには:
ほとんどは元のdao開発の手順と同じです.冒頭のブログでは各手順を詳しく紹介しているので、ここでは大まかな手順を書いて、詳しく展開しないでください.
1.IDEAを使用してmavenプロジェクトを作成します(jarパッケージを手動でインポートすることでmybatisを使用することができます).
2.srcディレクトリの下にSqlMapConfig.xmlというxmlファイルを作成する
3.SqlMapConfig.xmlファイルの内容を設定する
4.テーブルに対応するクラスのマッピングファイルを作成する
【注意】UserMapper.xmlファイルのnamespaceの内容は書き散らすことができません.定義するmapperインタフェースのアドレスを書かなければなりません.その他は元のdao開発方法と同じです
【注意1】mapper.javaインタフェースのメソッド名はmapper.xmlのstatementのidと一致する. 以下のとおりです
【注意3】mapper.javaインタフェースのメソッドが返すパラメータのタイプはresultTypeで示すタイプと一致する.以上のように
6.合計プロファイルに、上の表に対応するクラスのマッピングファイルをマッピングする
7.テスト運転
mapperエージェントを使用してdaoを開発する過程で、元のdao開発方法と比較して、唯一省略したステップは、インタフェースの実装クラスを作成することです.これにより、コードの読み取りが大幅に向上します.開発が容易
sqlSessionでは、mapperインタフェースのプロキシオブジェクトを自動的に作成できます.作成したばかりのmapperインタフェースのバイトコードオブジェクトをgetMapperメソッドに渡すだけで、インタフェースに対応するエージェントオブジェクトが得られ、このエージェントオブジェクトを使用してインタフェースの具体的な方法を操作することができます.
mapperインタフェースのメソッドのパラメータはマッピングファイルのparameterTypeに基づいて指定されるため、parameterTypeは1つしかないので、mapperインタフェースのすべてのメソッドのパラメータは1つしかありません!しかし、包装タイプのpojoを使用して、異なるビジネス方法のニーズを満たすことができます.つまり、パッケージタイプを使用して、必要な複数のパラメータを1つのクラスにパッケージします.
mapperエージェント開発とは?
dao層を開発する方法.
なぜmapperエージェントメソッドを使用してdaoを開発するのですか?
原始的な方法開発daoの弊害を補うために.たとえば:
mapperエージェントを使用してdaoを開発するには:
ほとんどは元のdao開発の手順と同じです.冒頭のブログでは各手順を詳しく紹介しているので、ここでは大まかな手順を書いて、詳しく展開しないでください.
1.IDEAを使用してmavenプロジェクトを作成します(jarパッケージを手動でインポートすることでmybatisを使用することができます).
2.srcディレクトリの下にSqlMapConfig.xmlというxmlファイルを作成する
3.SqlMapConfig.xmlファイルの内容を設定する
4.テーブルに対応するクラスのマッピングファイルを作成する
【注意】UserMapper.xmlファイルのnamespaceの内容は書き散らすことができません.定義するmapperインタフェースのアドレスを書かなければなりません.その他は元のdao開発方法と同じです
5.インタフェースの作成【注意1】mapper.javaインタフェースのメソッド名はmapper.xmlのstatementのidと一致する. 以下のとおりです
public interface Usermapper {
/**
findById mapper.xml id
【注意2】mapper.javaインタフェースのメソッド受信パラメータのタイプはparameterTypeのタイプと一致する.以上のように【注意3】mapper.javaインタフェースのメソッドが返すパラメータのタイプはresultTypeで示すタイプと一致する.以上のように
6.合計プロファイルに、上の表に対応するクラスのマッピングファイルをマッピングする
7.テスト運転
public class TestDaiLi {
public static void main(String[] args) throws IOException {
//mybatis
String resource = "SqlMapConfig.xml";
//
InputStream inputStream = Resources.getResourceAsStream(resource);
// , mybatis
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
/* SqlSession*/
SqlSession sqlSession = sqlSessionFactory.openSession();
// dao dao
Usermapper usermapper = sqlSession.getMapper(Usermapper.class);
User user = usermapper.findById(1);
System.out.println(user.getUserName());
}
}
まとめ:mapperエージェントを使用してdaoを開発する過程で、元のdao開発方法と比較して、唯一省略したステップは、インタフェースの実装クラスを作成することです.これにより、コードの読み取りが大幅に向上します.開発が容易
sqlSessionでは、mapperインタフェースのプロキシオブジェクトを自動的に作成できます.作成したばかりのmapperインタフェースのバイトコードオブジェクトをgetMapperメソッドに渡すだけで、インタフェースに対応するエージェントオブジェクトが得られ、このエージェントオブジェクトを使用してインタフェースの具体的な方法を操作することができます.
mapperインタフェースのメソッドのパラメータはマッピングファイルのparameterTypeに基づいて指定されるため、parameterTypeは1つしかないので、mapperインタフェースのすべてのメソッドのパラメータは1つしかありません!しかし、包装タイプのpojoを使用して、異なるビジネス方法のニーズを満たすことができます.つまり、パッケージタイプを使用して、必要な複数のパラメータを1つのクラスにパッケージします.