项目----mapper层多表数据访问

1.实体类entities关联id

package com.cc.springboot.entities;

import java.util.Date;

/**
 * 帐单实体类
 * @Title: Provider
 * @Description: com.mengxuegu.springboot.entities
 * @Auther: www.mengxuegu.com
 * @Version: 1.0
 */
public class Bill {

    private Integer bid;
    // 账单编码
    private String billCode;
    // 商品名称
    private String billName;
    // 商品单位
    private String billCom;
    // 商品数量
    private Integer billNum;
    // 总金额
    private Double money;
    // 供应商
    private Provider provider;

    //供应商id
    private Integer pid;

    public Integer getPid() {
        return pid;
    }

    public void setPid(Integer pid) {
        this.pid = pid;
    }

    // 是否付款 0 未付款, 1已付款
    private Integer pay;
    // 创建时间
    private Date createDate;
    public Bill() {}

    public Bill(Integer bid, String billCode, String billName, String billCom, Integer billNum, Double money, Provider provider, Integer pay) {
        this.bid = bid;
        this.billCode = billCode;
        this.billName = billName;
        this.billCom = billCom;
        this.billNum = billNum;
        this.money = money;
        this.provider = provider;
        this.pay = pay;
        this.createDate = new Date();
    }


    @Override
    public String toString() {
        return "Bill{" +
                "bid=" + bid +
                ", billCode='" + billCode + '\'' +
                ", billName='" + billName + '\'' +
                ", billCom='" + billCom + '\'' +
                ", billNum=" + billNum +
                ", money=" + money +
                ", provider=" + provider +
                ", pay=" + pay +
                ", createDate=" + createDate +
                '}';
    }

    public Integer getBid() {
        return bid;
    }

    public void setBid(Integer bid) {
        this.bid = bid;
    }

    public String getBillCode() {
        return billCode;
    }

    public void setBillCode(String billCode) {
        this.billCode = billCode;
    }

    public String getBillName() {
        return billName;
    }

    public void setBillName(String billName) {
        this.billName = billName;
    }

    public String getBillCom() {
        return billCom;
    }

    public void setBillCom(String billCom) {
        this.billCom = billCom;
    }

    public Integer getBillNum() {
        return billNum;
    }

    public void setBillNum(Integer billNum) {
        this.billNum = billNum;
    }

    public Double getMoney() {
        return money;
    }

    public void setMoney(Double money) {
        this.money = money;
    }

    public Provider getProvider() {
        return provider;
    }

    public void setProvider(Provider provider) {
        this.provider = provider;
    }

    public Integer getPay() {
        return pay;
    }

    public void setPay(Integer pay) {
        this.pay = pay;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }
}

关键-》添加了pid以及setter和getter

2.新建一个实体类entities/BillProvider 继承bill

package com.cc.springboot.entities;
//封装新的实体,因为账单列表页和详情页都有供应商的名称
public class BillProvider extends Bill {
    private  String providerName;

    public String getProviderName() {
        return providerName;
    }

    public void setProviderName(String providerName) {
        this.providerName = providerName;
    }
}

 3.创建mapper接口 mapper/BillMapper

package com.cc.springboot.mapper;

import com.cc.springboot.entities.Bill;
import com.cc.springboot.entities.BillProvider;

import java.util.List;

public interface BillMapper {
    //    获取账单列表
    List<BillProvider> getBills(Bill bill);

    //    通过id获取账单列表
    BillProvider getBillByBid(Integer bid);

//    添加
    int addBill(Bill bill);

//    更新
    int updateBill(Bill bill);

//    通过id删除
    int deleteBillByBid(Integer bid);
}

4.创建静态资源resources/mabaties/mapper/BillMapper.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.cc.springboot.mapper.BillMapper">

    <!--查询列表-->
   <select id="getBills" resultType="com.cc.springboot.entities.BillProvider">
       select  * from bill b left join provider p on b.pid=p.pid
       where 1=1
       <if test='billName != "null" and billName != ""'>
           and b.bill_name like '%${billName}%'
       </if>
       <if test='pid !=null'>
           and b.pid=#{pid}
       </if>
       <if test='pay != null'>
           and b.pay =#{pay}
       </if>
   </select>

    <!--通过id查询-->
    <select id="getBillByBid" resultType="com.cc.springboot.entities.BillProvider">
           select * from bill b left join provider p on b.pid=p.pid
       where b.bid=#{bid}
    </select>

    <!--添加-->
    <insert id="addBill">
           INSERT INTO `bill` ( `bill_code`, `bill_name`, `bill_com`, `bill_num`, `money`, `pay`, `pid`, `create_date`)
        VALUES ( #{billCode}, #{billName}, #{billCom}, #{billNum}, #{money}, #{pay}, #{pid}, now());

    </insert>

    <!--修改-->
    <update id="updateBill">
   UPDATE `bill`
        SET `bill_code`=#{billCode}, `bill_name`= #{billName}, `bill_com`=#{billCom}, `bill_num`=#{billNum}, `money`=#{money}, `pay`=#{pay}, `pid`=#{pid}, `create_date`='2018-11-17 15:22:03'
        WHERE `bid`=#{bid}
    </update>

    <!--删除-->
    <delete id="deleteBillByBid">
        delete from bill where bid=#{bid}
    </delete>
</mapper>

5. 测试

package com.cc.springboot;

import com.cc.springboot.entities.Bill;
import com.cc.springboot.entities.BillProvider;
import com.cc.springboot.entities.Provider;
import com.cc.springboot.mapper.BillMapper;
import com.cc.springboot.mapper.ProviderMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;


import java.util.List;


@SpringBootTest(classes = {SpringBootBillApplication.class})
public class SpringBootBillApplicationTests {
   @Autowired
    ProviderMapper providerMapper;

   @Autowired
    BillMapper billMapper;
    @Test
    void contextLoads() {
        Bill b=new Bill();
        b.setBillName("com");
        List<BillProvider> bills = billMapper.getBills(b);
        System.out.println(bills.get(0));

        BillProvider billProvider = billMapper.getBillByBid(5);
        System.out.println(billProvider);

        Bill bill=(Bill) billProvider;
        bill.setBillName("hhhhhh");
        billMapper.updateBill(bill);


        billMapper.addBill( new Bill(null, "Bi-AA11", "粮油aaa", "斤", 80,480.8, new Provider(2002, "PR-BB", "梦学谷供应商222", "小李", "18888666982", "深圳软件园", "0911-0123453", "品质B"), 1));

        billMapper.deleteBillByBid(5);
 
    }

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值