什麼時候會用到一對一?
一對一設計的兩種方案
一對一查詢有兩種方式
1. 建立子類 (不常用)
2. 從表中有實體參照(常用)
準備環境
現在有兩種表,一張使用者名稱(從表),一張賬戶表(主表)
public class Account {
private Integer id;
private Integer uid;
private Double money;
//從表實體類中應該有一個主表的物件
private User user;
//提供getset方法 該重寫的方法重寫了
}
select
a.*,u.id,u.name,u.password
from
account a
join
user u
on
a.uid = u.id
<!--定義一個能封裝account和user的resultMap-->
<resultMap id="accountUserMap" type="Account">
<!--定義主鍵欄位-->
<id property="id" column="id"></id>
<!--定義非主鍵欄位-->
<result property="uid" column="uid"></result>
<result property="money" column="money"></result>
<!--一對一的關係對映:設定user的內容-->
<!--property:該實體類中的哪個對應關係的主表屬性-->
<!--column:通過哪一個 欄位進行獲取的-->
<!--javaType:最後的結果封裝到哪個類 正常寫法是com.xxx.xx 用了TypeAlia..所以直接類名-->
<association property="user" column="uid" javaType="User">
<!--在裡面寫User的屬性和資料庫對應起來-->
<id property="id" column="id"></id>
<result property="name" column="name"></result>
<result property="password" column="password"></result>
</association>
</resultMap>
<select id="findAll" resultMap="accountUserMap">
select
a.*,u.id,u.name,u.password
from
account a
join
user u
on
a.uid = u.id
</select>
這樣就能查詢出來了
下一篇更新: 多表查詢 一對多查詢