SpringBoot+Mybatis實現關聯查詢
今天學習了下Mybatis的動態查詢,然后接着上次的Demo改造了下實現表的關聯查詢。
話不多說,開始今天的小Demo
首先接着上次的項目 https://www.cnblogs.com/Leslie-/p/9469045.html
然后呢我們在數據庫中創建新的兩張表
如下圖所示:
然后呢,關聯查詢當然要在User表里面添加新的屬性
接下來 在項目中添加Car的實體類以及address的實體類
package com.example.demo.entity;
/**
* author:lrh
* Date:2018/8/15
* Time:14:08
*/
public class Address {
private Integer id;
private String address;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
package com.example.demo.entity;
/**
* author:lrh
* Date:2018/8/15
* Time:14:23
*/
public class Car {
private Integer id;
private String color;
private String car;
private Integer userid;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getCar() {
return car;
}
public void setCar(String car) {
this.car = car;
}
public Integer getUserid() {
return userid;
}
public void setUserid(Integer userid) {
this.userid = userid;
}
}
還有就是得添加下User實體類的屬性
添加如下:
創建CarMapper和AddressMapper
再CarMapper里面添加selectAllCar的方法以及注解
@Repository @Mapper public interface CarMapper { @Select("SELECT * FROM car WHERE userid = #{userid}") public List<Car> selectAllCar(); }
AddressMapper里面添加select的方法以及注解
@Repository
@Mapper
public interface AddressMapper {
@Select("SELECT * FROM address WHERE id = #{id}")
public Address selectByID(Integer id);
}
最后再UserMapper里面調用,在下比較懶就懶得新寫了,直接在原先的selectByPrimaryKey方法上面加了。。
@Select("SELECT * FROM user WHERE id = #{id}")
@Results({
@Result(property = "address" ,column = "addressid",
one = @One(select = "com.example.demo.dao.AddressMapper.selectByID")),
@Result(property = "cars" ,column = "id",
many = @Many(select = "com.example.demo.dao.CarMapper.selectAllCar"))
//column代表將該屬性作為參數傳入,property代表將查詢出來的數據交給該屬性
})
User selectByPrimaryKey(Integer id);
最后啟動DemoAppliction
嗯。。大功告成。。告辭告辭