最後にこのresultMapとresultTypeとの違いは何ですか?

再現、ソースを明記してください。https://www.cnblogs.com/Dreamice/

まず、結果はSQL文の実行が地図ストアを使用することができます後に返され、あなたはPOJOのストレージを使用することができます。

まず、地図ストレージを使用して結果セット

以下は、他のファイルが省略され、テストファイルとコードマッピングファイルです
によってresultTypeと=「地図」の定義、リターンマップ

<!-- 查询所有书籍信息:通过resultType="Map"的方式 -->
    <!-- 查询所有书籍信息:通过resultType="Map"的方式 -->
    <select id="selectAllBookByTypeMap" resultType="Map">
        select * from book
    </select>
@org.junit.Test
public void test1() {
    @Autowired
    private BookService bookService;
    List<Map> books = bookService.selectAllBookByTypeMap();
    System.out.println("通过resultType=\"Map\"的方式:");
    System.out.println(books);
 }

結果:
1つの実行結果

第二に、保存された結果セットPOJOを使用して

POJOは、具体的には、NAME1のプロパティを定義し、クラスを定義データベース矛盾のフィールド名と名前のため
Book.java

public class Book {
    private Integer id;
    private String name1;
    private String author;

    //省略getter和setter函数
}

1、resultTypeと=「地図」を使用して
使用することによって、クエリの使用resultTypeと=「地図」エイリアス自動的にクラス属性名POJOにマッピングされたことを確認する方法

   <!-- 查询所有书籍信息:通过resultType="*.*.pojo"的方式 -->
    <select id="selectAllBookByTypePojo" resultType="com.dreamice.pojo.Book">
        select id,name name1,author from book
    </select>

図2は、このresultMapを使用すると、
マップファイルに定義されたこのresultMap

<!-- 查询所有书籍信息:通过resultMap="*.*.pojo"的方式 -->
    <select id="selectAllBookByRMPojo" resultMap="bookResultMap">
        select * from book
    </select>

    <!-- 定义resultMap-->
    <resultMap id="bookResultMap" type="com.dreamice.pojo.Book">
        <result property="name1" column="name"/>
    </resultMap>

再現、ソースを明記してください。https://www.cnblogs.com/Dreamice/

@org.junit.Test
public void test1() {
    @Autowired
    private BookService bookService;
    List<Book> booksPojo = bookService.selectAllBookByTypePojo();
    System.out.println("通过resultType=\"*.*.pojo\"的方式:");                      System.out.println(booksPojo);
    System.out.println(booksPojo.get(0).getName1());

    List<Book> booksRMPojo = bookService.selectAllBookByRMPojo();
    System.out.println("通过resultMap的方式:");
    System.out.println(booksRMPojo);
    System.out.println(booksRMPojo.get(1).getName1());
    System.out.println(booksRMPojo.get(1).getAuthor());
 }

結果:
実行結果

第三に、違い

したがって、違いは次のとおりです
。1、クエリ結果はresultTypeとを使用して、地図で
、2単純なクエリと結果はPOJOクラスで、resultTypeとを使用することができ、さらに、クエリは別名方法を使用することにより、一貫性のないフィールド名POJOのプロパティ名です。
3、複雑なマッピングまたはカスケードは、このresultMapを使用することができ、
転載、してくださいクレジット:https://www.cnblogs.com/Dreamice/

おすすめ

転載: www.cnblogs.com/Dreamice/p/11966283.html