mybatisplus的多表联合查询

遇到的错误:

这个是因为没有在application.yml文件配置mapper位置

1.yml

mybatis:
  configuration:
  map-underscore-to-camel-case: true

mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

2.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.springboot.springsecurity1.dao.BookDao">

    <resultMap id="bookDao" type="com.springboot.springsecurity1.dao.BookDao">
        <id column="owner_id" property="owenerId"/>
        <result column="owner_Name" property="ownerName" />
        <result column="owner_sex" property="ownerSex" />
        <result column="owner_age" property="ownerAge" />
        <result column="owner_address" property="ownerAddress" />
        <result column="owner_email" property="ownerEmail" />
    </resultMap>

    <select id="selectAll" resultType="com.springboot.springsecurity1.bean.BookOwnerVO">
        SELECT
        b.book_id,
        b.book_name,
        b.created_time,
        o.owner_id,
        o.owner_Name,
        o.owner_email,
        o.owner_address
        FROM book b join t_bookowner o on b.owner_id = o.owner_id
    </select>
</mapper>

3.关联实体

package com.springboot.springsecurity1.bean;

import java.util.Date;

public class BookOwnerVO {
    private int bookId;
    private String bookName;
    private Date createdTime;
    private int ownerId;
    private String ownerName;
    private String ownerEmail;
    private String ownerAddress;

    public BookOwnerVO() {
    }

    public int getBookId() {
        return bookId;
    }

    public void setBookId(int bookId) {
        this.bookId = bookId;
    }

    public String getBookName() {
        return bookName;
    }

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

    public Date getCreatedTime() {
        return createdTime;
    }

    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    public int getOwnerId() {
        return ownerId;
    }

    public void setOwnerId(int ownerId) {
        this.ownerId = ownerId;
    }

    public String getOwnerName() {
        return ownerName;
    }

    public void setOwnerName(String ownerName) {
        this.ownerName = ownerName;
    }

    public String getOwnerEmail() {
        return ownerEmail;
    }

    public void setOwnerEmail(String ownerEmail) {
        this.ownerEmail = ownerEmail;
    }

    public String getOwnerAddress() {
        return ownerAddress;
    }

    public void setOwnerAddress(String ownerAddress) {
        this.ownerAddress = ownerAddress;
    }

    @Override
    public String toString() {
        return "BookOwnerVO{" +
                "bookId=" + bookId +
                ", bookName='" + bookName + '\'' +
                ", createdTime=" + createdTime +
                ", ownerId=" + ownerId +
                ", ownerName='" + ownerName + '\'' +
                ", ownerEmail='" + ownerEmail + '\'' +
                ", ownerAddress='" + ownerAddress + '\'' +
                '}';
    }
}

4.调用

//-------------------------------------------------BookDao接口

@Component
public interface BookDao extends BaseMapper<Book> {
    /**
     * 联表查询
     * @return
     */
    List<Object> selectAll();


}

//----------------------------------------------------service接口

  /**
     * 联表查询
     * @return
     */
    List<Object> selectAll();

//------------------------------------------------------------Service实现类

public List<Object> selectAll() {
    return bookDao.selectAll();
}

//----------------------------------------------------------controller

@RequestMapping("getall")
public List<Object> getAll(){
    return bookService.selectAll();
}

5.postman测试

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值