mybatis高階 輸入對映和輸出對映

2021-08-19 01:17:56 字數 1408 閱讀 9299

首先是輸入型別,輸入型別分為以下幾種:1.基本型別。2.pojo物件型別。3.pojo包裝物件。所謂的包裝物件,可以理解為,乙個物件裡面包含著另外乙個物件。

簡單輸入型別,比較簡單。在傳入引數的時候,直接將引數型別配置到parametertype中,**如下:

select * from user where id=#

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

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

select * from user where username like'%$%'

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

如果傳入物件是乙個包含有另外乙個物件的物件,也就是說傳入物件是乙個包裝物件的時候,我們該怎麼辦呢?其實也差不多,就是將佔位符或者連線符中的值改為物件.屬性名具體**如下:

首先是pojo物件的**,我們可以看出,整個user物件都作為了queryvo物件的乙個屬性值了,其欄位名稱為user:

package cn.itcast.pojo;

public class queryvo

public void setuser(user user)

}

然後是我們的對映檔案,其中的$中,user和我們的queryvo類中的user屬性名稱一致,而username對應的是user類中的username欄位:

select * from user where username like'%$%' and *** =#

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

還有就是我們的pojo型別。我們的mybatis可以將返回的資料,封裝成為乙個pojo物件,但是,pojo的物件屬性必須和我們的返回值的欄位名一致。才可以封裝進去。如果不一致仍然想封裝,那麼,就需要指定其對應關係。具體**及注釋如下:

select * from user where username like'%$%' and *** =#

mybatis 輸入對映和輸出對映

輸入對映和輸出對映 複製昨天的工程,按照下圖進行 最終效果如下圖 parametertype 輸入型別 傳遞簡單型別 參考第一天內容。使用 佔位符,或者 進行sql拼接。傳遞pojo物件 參考第一天的內容。mybatis使用ognl表示式解析物件欄位的值,或者 括號中的值為pojo屬性名稱。傳遞po...

Mybatis 高階對映

一對一對映 association 標籤的巢狀查詢 select id,username,useremail,user role.role id from user inner join user role on user role.role id user.id where user.id sel...

Mybatis輸入輸出對映

1 傳遞簡單型別 select id finduserbyid parametertype int resulttype com.test.pojo.user select from user where id select 2 傳遞pojo物件 mybatis使用ognl表示式解析物件欄位的值。s...