国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - MyBatis輸入映射和輸出映射實例詳解

MyBatis輸入映射和輸出映射實例詳解

2020-08-11 18:49精品唯居 Java教程

mapper.xml是我們配置操作數據庫的sql語句的地方.這篇文章主要介紹了MyBatis輸入映射和輸出映射實例詳解,需要的朋友可以參考下

什么是 MyBatis

MyBatis 是支持定制化 SQL、存儲過程以及高級映射的優秀的持久層框架。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 可以對配置和原生Map使用簡單的 XML 或注解,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對象)映射成數據庫中的記錄。

我們知道,mapper.xml是我們配置操作數據庫的sql語句的地方。其中每個sql語句對應著一個方法,每個方法都有自己的輸入輸出參數類型。那么這些類型都是怎么配置的呢?今天我們來一起學習下。

         輸入映射

         首先是輸入類型,輸入類型分為以下幾種:1.基本類型。2.pojo對象類型。3.pojo包裝對象。所謂的包裝對象,可以理解為,一個對象里面包含著另外一個對象。

         簡單類型

          簡單輸入類型,比較簡單。在傳入參數的時候,直接將參數類型配置到parameterType中,代碼如下:

?
1
2
3
<select id="findUserById" parameterType="int" resultType="cn.itcast.pojo.User">
SELECT * FROM user where id=#{id}
</select>

        其中的sql語句內的占位符或者拼接符中的內容可以隨意書寫,沒有實際意義。不過建議最好見名知意。以便于閱讀。

         pojo對象

         如果傳入的是一個對象的話,那么情況就稍有不同了。除了傳入類型需要是對象的類型(可以直接寫類的全路徑,也可以通過在sqlConfig.xml中配置別名的方式,配置類的別名)。還需要注意的是在sql語句的占位符上也需要將我們的內容對應我們的對象的屬性值。代碼如下:

?
1
2
3
<select id="findUserByUserName" parameterType="cn.itcast.pojo.User" resultType="cn.itcast.pojo.User">
 select * from user where username like'%${username}%'
</select>

         這里的username必須對應User類中的屬性。也就是說,在User類中必須有username的屬性。而且我們在傳入參數的時候,需要將user對象的username賦值。用于被mybatis框架解析。

          在sqlConfig.xml中配置別名的方法:  

?
1
2
3
4
5
6
7
8
9
<!-- 自定義別名 -->
 <typeAliases>
 <!-- 給單個pojo起別名: type:pojo的全路徑名稱, alias:別名 -->
<!-- <typeAlias type="cn.itcast.pojo.User" alias="user"/> -->
 <!-- 使用包掃描的方式將整個包下面的pojo起別名
  別名就是類名, 不區分大小寫, 建議按照java的命名規則來寫
 -->
 <package name="cn.itcast.pojo"/>
 </typeAliases>

         pojo包裝對象

         如果傳入對象是一個包含有另外一個對象的對象,也就是說傳入對象是一個包裝對象的時候,我們該怎么辦呢?其實也差不多,就是將占位符或者連接符中的值改為對象.屬性名具體代碼如下:

         首先是pojo對象的代碼,我們可以看出,整個user對象都作為了queryVo對象的一個屬性值了,其字段名稱為user:

?
1
2
3
4
5
6
7
8
9
10
package cn.itcast.pojo;
public class QueryVo {
 private User user;
 public User getUser() {
 return user;
 }
 public void setUser(User user) {
 this.user = user;
 }
}

         然后是我們的映射文件,其中的${user.userneme}中,user和我們的QueryVo類中的user屬性名稱一致,而username對應的是User類中的username字段:

?
1
2
3
<select id="findUserByVo" parameterType="cn.itcast.pojo.QueryVo" resultType="cn.itcast.pojo.User">
 select * from user where username like'%${user.username}%' and sex =#{user.sex}
</select>

        輸出映射

         輸出映射的配置和輸入映射基本一致。首先是簡單類型,mybatis中只有一種情況可以返回簡單類型,那就是我們的sql語句返回值只有一條的時候。可以返回簡單類型。

         還有就是我們的pojo類型。我們的mybatis可以將返回的數據,封裝成為一個pojo對象,但是,pojo的對象屬性必須和我們的返回值的字段名一致。才可以封裝進去。如果不一致仍然想封裝,那么,就需要指定其對應關系。具體代碼及注釋如下:

?
1
2
3
4
5
6
7
8
9
10
11
<!-- 這里的userListResultMap對應的是resultMap的唯一標示符 -->
 <select id="findUserByVo" parameterType="cn.itcast.pojo.QueryVo" resultMap="userListResultMap">
 select * from user where username like'%${user.username}%' and sex =#{user.sex}
 </select>
 <!-- 這里的cn.itcast.pojo.User代表的是User類也就是最終生成對象的類型;userListResultMap是這個resultMap的唯一標示符 -->
 <resultMap type="cn.itcast.pojo.User" id="userListResultMap">
 <!-- 這里的id_是從數據庫中查出的數據字段名稱是主鍵;而id是我們的User對象中的屬性 -->
 <id column="id_" property="id"/>
 <!-- 這里的result指的是其他字段 -->
 <result column="userneme_" property="username"/>
 </resultMap>

以上所述是小編給大家介紹的MyBatis輸入映射和輸出映射實例詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:http://www.cnblogs.com/liyasong/archive/2017/02/14/mybatis_ys.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲精品久久久久久久久久久久久 | 亚洲激情都市 | 久久久九九| 超碰综合 | 一本久久a久久精品亚洲 | 欧美激情高清 | 久久夜色精品国产 | 国产成人精品一区二区三区网站观看 | 樱桃小丸子在线观看 | 精品久久久久久久久久久下田 | 视频一区二区三区中文字幕 | 美女视频一区 | 日韩av专区 | 国产精品久久久久久吹潮 | 亚州成人 | 影音先锋亚洲资源 | 免费成人在线视频网站 | 亚洲免费成人在线 | 91在线日韩 | 日本久久精品 | 久久av网 | www.久久 | 一区二区三区无码高清视频 | 日韩三级在线 | 国产免费一区二区三区 | 一区二区三区免费观看 | www久久精品 | 激情欧美一区二区三区中文字幕 | 欧美,日韩,国产精品免费观看 | 中国成人免费视频 | 日本在线一区二区三区 | 亚洲字幕| 成人看片毛片免费播放器 | 国产福利91精品一区二区三区 | 免费在线亚洲 | 日日操操| 亚洲欧美视频 | 午夜看片 | 久久国产成人 | 中文字幕在线精品 | 一区二区三区免费在线观看 |