激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

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

服務(wù)器之家 - 編程語言 - Java教程 - MyBatis輸入映射和輸出映射實(shí)例詳解

MyBatis輸入映射和輸出映射實(shí)例詳解

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

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

什么是 MyBatis

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

我們知道,mapper.xml是我們配置操作數(shù)據(jù)庫的sql語句的地方。其中每個(gè)sql語句對(duì)應(yīng)著一個(gè)方法,每個(gè)方法都有自己的輸入輸出參數(shù)類型。那么這些類型都是怎么配置的呢?今天我們來一起學(xué)習(xí)下。

         輸入映射

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

         簡(jiǎn)單類型

          簡(jiǎn)單輸入類型,比較簡(jiǎn)單。在傳入?yún)?shù)的時(shí)候,直接將參數(shù)類型配置到parameterType中,代碼如下:

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

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

         pojo對(duì)象

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

?
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必須對(duì)應(yīng)User類中的屬性。也就是說,在User類中必須有username的屬性。而且我們?cè)趥魅雲(yún)?shù)的時(shí)候,需要將user對(duì)象的username賦值。用于被mybatis框架解析。

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

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

         pojo包裝對(duì)象

         如果傳入對(duì)象是一個(gè)包含有另外一個(gè)對(duì)象的對(duì)象,也就是說傳入對(duì)象是一個(gè)包裝對(duì)象的時(shí)候,我們?cè)撛趺崔k呢?其實(shí)也差不多,就是將占位符或者連接符中的值改為對(duì)象.屬性名具體代碼如下:

         首先是pojo對(duì)象的代碼,我們可以看出,整個(gè)user對(duì)象都作為了queryVo對(duì)象的一個(gè)屬性值了,其字段名稱為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對(duì)應(yīng)的是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>

        輸出映射

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

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

?
1
2
3
4
5
6
7
8
9
10
11
<!-- 這里的userListResultMap對(duì)應(yīng)的是resultMap的唯一標(biāo)示符 -->
 <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類也就是最終生成對(duì)象的類型;userListResultMap是這個(gè)resultMap的唯一標(biāo)示符 -->
 <resultMap type="cn.itcast.pojo.User" id="userListResultMap">
 <!-- 這里的id_是從數(shù)據(jù)庫中查出的數(shù)據(jù)字段名稱是主鍵;而id是我們的User對(duì)象中的屬性 -->
 <id column="id_" property="id"/>
 <!-- 這里的result指的是其他字段 -->
 <result column="userneme_" property="username"/>
 </resultMap>

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品麻豆一区二区三区 | 久国久产久精永久网页 | 青青草免费观看完整版高清 | 2019天天干夜夜操 | 看免费5xxaaa毛片 | 美女很黄很黄免费的 | 一区二区三区无码高清视频 | 欧美成人免费 | 9999久久| 最新av免费网址 | 91成人影库 | 娇喘在线 | 九九精品视频免费 | 国产91极品| 久草在线综合网 | 久久久久久久一区二区 | 午夜视频中文字幕 | 国产午夜亚洲精品午夜鲁丝片 | 欧美黄在线 | 一级黄色淫片 | 国产麻豆交换夫妇 | 性欧美xx| 在线观看视频日本 | 国产精品a一 | 免费在线观看中文字幕 | 激情在线视频 | 欧美aⅴ视频 | 久久国产精品99久久人人澡 | 精品小视频| 在线观看一区二区三区四区 | 日日久视频 | 久久久久亚洲美女啪啪 | 欧美日韩一区三区 | 亚洲一区二区三区高清 | 免费一级在线观看 | 思思久而久而蕉人 | 国产一区精品在线观看 | 欧美一级黄色免费看 | 一级成人毛片 | 国产深夜福利视频在线播放 | 亚洲va国产va|