首頁 > Java > java教程 > 主體

mybatis入門基礎(四)----輸入映射與輸出映射

黄舟
發布: 2016-12-21 14:31:03
原創
1202 人瀏覽過

mybatis入門基礎(四)----輸入映射與輸出映射一:輸入映射 

  透過parameterType指定輸入參數的類型,類型可以是簡單型別、hashmap、pojo的包裝類型。

1.1.傳遞pojo的包裝對象

 1.1.1.需求描述

    完成用戶資訊的綜合查詢,需要傳入的查詢條件可能很複雜(可能包括用戶信息,其它信息,比如,商品,訂單等等)。

 1.1.2.定義包裝類型的pojo

    針對上邊的需求,建議使用自訂的包裝類型pojo,在包裝類型的pojo中將複雜的查詢條件包裝進去。

包裝查詢條件的pojo類別UserQueryVo類別的程式碼:

1 package com.mybatis.entity; 2  3 /**4  *  5 * @ClassName: UserQueryVo  6 * @Description: TODO(包裝類型) 7 * @author warcaft 8 * @date 2015-6-30 上午12:00:41  9 *10  */11 public class UserQueryVo {12   //  3  *  4 * @ClassName: UserCustom  5 * @Description: TODO(使用者的擴充類別)  6 * @author warcaft 7 * @date 2015-6-30 上午12:02:37  8 * 9  */11 public class UserQueryVo {12 59   //2  *  3  * @ClassName: UserMapper 4  * @Description: TODO(使用者管理mapper介面) 5  * @author warcaft 6  * @date 2015-6-30 上午12:14:56 7  */11 public class 使用者查詢條件14     PRivate UserCustom userCustom;15 16     public UserCustom getUserCustom() {17         return userCustom;18     }19 20 User       this.userCustom = userCustom;22     }23     //可以包裝其它查詢條件. .....24 25 }
View Code

UserCustom類別的程式碼

1 package com.mybatis.entity; 2 /**&*/10 public class UserCustom extends User{11     //可以擴充使用者的使用者的資訊12 }
View Code

UserMapper.xml的程式碼

  在UserMapper.xml中定義使用者資訊綜合查詢(假設查詢條件很複雜,透過進階查詢複雜關聯查詢)

1 5     查看程式碼二:輸出對應

ult1.resultType。名一致,該列才可以成功對應。

只要查詢出來的列名和pojo中的屬性有一個一致,就能建立pojo物件。

1.1.輸出簡單類型

需求:用戶資訊的綜合查詢列表,透過查詢總數才能實現分頁功能。 '

1 2 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 5 8 12 13 16

UserMapper.java 的代碼2     //使用者資訊綜合查詢總數3     public int findUserCount(UserQueryVo userQueryVo);4 }

Junit測試程式碼

1 個套件com.mybatis.dao.test;2 3 導入java.io.InputStream; 4 導入java.util.Date; 5 導入java.util.List;6 7 導入rg.apache.ibatis.io .Resources; 8 導入org.apache.ibatis.session.SqlSession; 9 導入og.apache.ibatis.session.SqlSessionFactory;10 導入og.apache.ibatis.session.SqlSessionFactoryBuilder; rg.junit.Before;12 導入o​​rg.junit.Test;13 14 導入com.mybatis.entity.User ;15 import com.mybatis.entity.UserCustom;16 import com.mybatis.entity.UserQueryVo;17 importVo; com.mybatis.mapper.UserMapper;18 19 public class UserMapperTest {20 21     private SqlSessionFactory sqlSessionFactory;22 23     {26         String resource = "SqlMapConfig.xml ";27         InputStream inputStream = Resources.getResourceAsStream(resource);  32     @Test33     public void findUserCountTest() {34         SqlSession sqlSession = sqlSessionFactory.openSession ();35         //建立查詢條件36         UserQueryVo userQueryVo = new UserQueryVo();37        UserCustom userCustom = newuserC. 39         userCustom.setUsername("小");40         userQueryVo. setUserCustom(userCustom);41         // 建立Usermapper對象,mybatis自動產生Usermapper代理對象42         UserMapper mapper = sqlSession.getMapper(UserMapper .class);435m User       System.out.println(count );45         sqlSession.commit();46         sqlSession.close();47     }48 }
查看程式碼

小結:

1.2.輸出pojo物件和pojo列表不管是輸出的pojo單一物件還是一個列表(list中包含pojo),在mapper.xml

在mapper.java指定的方法回傳值類型不一樣。

1.輸出單一pojo對象,方法回傳值是單一物件型別

1 public interface UserMapper {2 /**根據ID查詢用戶資訊*/3     public User findUserById(int id);#&*/3     public User findUserById(int id);44444m. 2.輸出pojo物件list,方法傳回值為List

1 public interface UserMapper {2     /** 根據用戶名稱模糊查詢用戶資訊*/3     公用清單; findUserByName(String username);4 }

:產生的動態代理物件中是根據mapper.java方法的回傳值類型決定是呼叫selectOne(單一回傳物件呼叫)還是selectList(傳回集合物件呼叫)

1.3 .輸出類型resultMap

Mybatis中使用resultMap完成進階輸出結果映射。

1.3.1.resultMap使用方法

(1).規定resultMap

(2).使用resultMap作為語句的輸出映射類型

(2).使用resultMap作為語句的輸出映射類型

( .需求:將下面的sql使用完成使用者映射

🎜 (2).定義結果圖

1 2    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 4   "http://mybatis. org/dtd/mybatis-3-mapper.dtd"> 5   8    12  13  12  13  18  19   !查詢結果中唯一的標識,20          column:查詢的列名21          property:type指定的pojo類型中的屬性名22        resultMap對colum> 25      30      31  32 『使用resultMap作為statement的輸出類型映射

1
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!