多表查询练习(二)

文章展示了如何在Java中使用MyBatisPlus框架处理一对一直联查询,通过BookHistory类中的User属性和UserMapper的selectByAid方法获取每个借阅记录对应的用户信息。
摘要由CSDN通过智能技术生成

二、查询所有借阅记录以及每条借阅记录的所属用户

BookHistory
在BookHistory中添加了user变量,用来存放某条查阅记录的用户信息(一对一)

package com.nkk.demo_echarts.Bean;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.util.Date;

@TableName("history")
public class BookHistory {
    @TableId(type = IdType.AUTO)
    private int hid;

    private String bookname;
    private String card;
    private String username;
    private Date begintime;
    private Date endtime;
    private int aid;

    private User user;

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    @Override
    public String toString() {
        return "BookHistory{" +
                "hid=" + hid +
                ", bookname='" + bookname + '\'' +
                ", card='" + card + '\'' +
                ", username='" + username + '\'' +
                ", begintime=" + begintime +
                ", endtime=" + endtime +
                ", aid=" + aid +
                ", user=" + user +
                '}';
    }

    public int getHid() {
        return hid;
    }

    public void setHid(int hid) {
        this.hid = hid;
    }

    public String getBookname() {
        return bookname;
    }

    public void setBookname(String bookname) {
        this.bookname = bookname;
    }

    public String getCard() {
        return card;
    }

    public void setCard(String card) {
        this.card = card;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public Date getBegintime() {
        return begintime;
    }

    public void setBegintime(Date begintime) {
        this.begintime = begintime;
    }

    public Date getEndtime() {
        return endtime;
    }

    public void setEndtime(Date endtime) {
        this.endtime = endtime;
    }

    public int getAid() {
        return aid;
    }

    public void setAid(int aid) {
        this.aid = aid;
    }

}

User类

package com.nkk.demo_echarts.Bean;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.util.List;

@TableName("admin") //类名和数据表名不一致
public class User {

//     aid是主键,且自增
//     添加数据时,可以自动添加aid,到数据表中
//     如果不加,数据库中aid虽然是自增的,但代码中查询的aid值为0
    @TableId(type = IdType.AUTO)
    private int aid;

//     @TableField(value = "username", exist = false)
    // 如果类里的变量名和数据表字段名不一致,或者数据表中不存在该字段,可以用@TableField注解
    private String username;
    private String password;
    public int getAid() {
        return aid;
    }

    public void setAid(int aid) {
        this.aid = aid;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

}

BookHistoryMapper

 @Select("select * from history")
    @Results(
            {
                    @Result(column = "hid", property = "hid"),
                    @Result(column = "bookname", property = "bookname"),
                    @Result(column = "card", property = "card"),
                    @Result(column = "username", property = "username"),
                    @Result(column = "begintime", property = "begintime"),
                    @Result(column = "endtime", property = "endtime"),
                    // 将aid传到UserMapper.selectByAid()方法,查询这条借阅记录的借阅者,再将数据返回到user,一对一用@One注解
                    @Result(column = "aid", property = "user", javaType = User.class,
                    one = @One(select = "com.nkk.demo_echarts.mapper.UserMapper.selectByAid")),
            }
    )
    List<BookHistory> selectAllBookHistoryAndUser();

UserMapper

   @Select("select * from admin where aid = #{aid}")
    List<User> selectByAid(int aid);

Controller

   //查询借阅记录以及每条借阅记录的所属用户
    @GetMapping("/user/findAllBookHistoryAndUser")
    public List findAllBookHistoryAndUser() {
        List<BookHistory> bookHistory = bookHistoryMapper.selectAllBookHistoryAndUser();
        return bookHistory;
    }

运行结果

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值