首先,需要创建两个实体类Window和Record,分别对应窗口和入账记录。

Window.java:

public class Window {
    private int windowId;
    private String windowName;
    private String cateringType;
    private String managerPhoneNumber;

    // 省略构造方法和getter/setter方法
}

Record.java:

public class Record {
    private int recordId;
    private Date recordTime;
    private double recordAmount;
    private int windowId;

    // 省略构造方法和getter/setter方法
}

接下来,创建Dao层的接口和实现类,用于与数据库进行交互。

WindowDao.java:

public interface WindowDao {
    Window getWindowById(int windowId);
}

WindowDaoImpl.java:

public class WindowDaoImpl implements WindowDao {
    @Override
    public Window getWindowById(int windowId) {
        // 查询数据库,根据窗口编号获取窗口信息
        // 返回窗口对象
    }
}

RecordDao.java:

public interface RecordDao {
    List<Record> getRecordsByConditions(Date date, double minAmount, double maxAmount, int windowId);
}

RecordDaoImpl.java:

public class RecordDaoImpl implements RecordDao {
    @Override
    public List<Record> getRecordsByConditions(Date date, double minAmount, double maxAmount, int windowId) {
        // 查询数据库,根据条件获取入账记录列表
        // 返回入账记录列表
    }
}

然后,创建Service层的接口和实现类,用于处理业务逻辑。

RecordService.java:

public interface RecordService {
    List<Record> getRecordsByConditions(Date date, double minAmount, double maxAmount, int windowId);
}

RecordServiceImpl.java:

public class RecordServiceImpl implements RecordService {
    private RecordDao recordDao;
    private WindowDao windowDao;

    public RecordServiceImpl() {
        recordDao = new RecordDaoImpl();
        windowDao = new WindowDaoImpl();
    }

    @Override
    public List<Record> getRecordsByConditions(Date date, double minAmount, double maxAmount, int windowId) {
        // 根据窗口编号查询窗口信息
        Window window = windowDao.getWindowById(windowId);

        // 查询入账记录
        List<Record> records = recordDao.getRecordsByConditions(date, minAmount, maxAmount, windowId);

        // 设置窗口信息到入账记录对象中
        for (Record record : records) {
            record.setWindowName(window.getWindowName());
            record.setCateringType(window.getCateringType());
        }

        return records;
    }
}

最后,创建一个测试类来验证代码的正确性。

Main.java:

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        // 创建Service实例
        RecordService recordService = new RecordServiceImpl();

        // 输入查询条件
        Date date = new Date(); // 日期
        double minAmount = 100.0; // 最小金额
        double maxAmount = 500.0; // 最大金额
        int windowId = 1; // 窗口编号

        // 执行查询
        List<Record> records = recordService.getRecordsByConditions(date, minAmount, maxAmount, windowId);

        // 打印查询结果
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        for (Record record : records) {
            System.out.println("记录编号:" + record.getRecordId());
            System.out.println("入账时间:" + dateFormat.format(record.getRecordTime()));
            System.out.println("入账金额:" + record.getRecordAmount());
            System.out.println("窗口编号:" + record.getWindowId());
            System.out.println("窗口名:" + record.getWindowName());
            System.out.println("餐饮类型:" + record.getCateringType());
            System.out.println();
        }
    }
}

这样,就完成了关于记录的多条件查询的代码编写

这两个实体:窗口:窗口编号 窗口名字 餐饮类型 负责人手机号入账记录:记录编号 入账时间 入账金额 编写jdbc相关代码model dao service完成关于记录的多条件查询:要求:根据 日期年月日、金额范围小值-大值、窗口编号查询入账记录;编写main测试类输入查询条件打印查询结果打印内容包括:记录编号 入账时间 入账金额 窗口编号 窗口名 餐饮类型是名字不是数字

原文地址: https://www.cveoy.top/t/topic/ioVj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录