SpringBoot+Mybatis實現關聯查詢


                  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

 

嗯。。大功告成。。告辭告辭

 

 

    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM