官方文件
publicinte***ce
user getuser(
intuserid);
}public
inte***ce
list
getarticlebyuserid(int
userid);
}
第一種方法
select
a.article_id,
a.user_id,
a.title,
a.content,
a.create_date
from
t_artile a
where a.user_id = #
<select
id="getuser"
parametertype
="int"
resulttype
="com.mybatis.model.user"
>
select user_id as userid,
username,
password,
agefrom t_user where user_id=#
select
>
這種方式很簡單, 但是對於大型資料集合和列表將不會表現很好。 問題就是我們熟知的 「n+1 查詢問題」。概括地講,n+1 查詢問題可以是這樣引起的:
這個問題會導致成百上千的 sql 語句被執行。這通常不是期望的。
mybatis 能延遲載入這樣的查詢就是乙個好處,因此你可以分散這些語句同時執行的消 耗。然而,如果你載入乙個列表,之後迅速迭代來訪問巢狀的資料,你會呼叫所有的延遲加 載,這樣的行為可能是很糟糕的。
第二種方法
--------------or-------------------------
select
a.article_id,
a.user_id,
a.title,
a.content,
a.create_date,
b.username,
b.password,
b.age
from
t_artile a
inner join t_user b on a.user_id = b.user_id
where a.user_id = #
這樣寫sql時就要關聯user表了。
mybatis多表查詢一對一
用mybatis多表查詢有兩種方式 建立乙個新的實體類,不建立實體類 乙個新的實體類 例子是聯合兩個表查詢 第乙個表是使用者表user,第二個表是賬戶表account 其中賬戶表的uid欄位是使用者表的id 分別建立表的實體類 user public class user implements se...
MyBatis一對一以及一對多關聯表查詢
當前資料庫中存在三個表clazz和teacher以及student,資料字典如下 clazz c id,c name,teacher id teacher t id,t name student s id,s name,class id 三個表對應的實體類如下 public class clazzp...
mybatis高階查詢 一對一 多對一
mybatis使用標籤 一的一方配置標籤 對應返回值單個實體 多的一方配置 標籤 對應返回值集合 根據實體類的定義,如果是屬性集合就配置,如果返回的資料是乙個實體的就配置 多表查詢時,需要乙個實體類多個表的資料.那麼需要將表與表的關係,也要反應在實體類與實體類之間的關係.配置一條資料的一方,使用實體...