这两个实体:窗口:窗口编号 窗口名字 餐饮类型 负责人手机号入账记录:记录编号 入账时间 入账金额 编写jdbc相关代码model dao service完成关于记录的多条件查询:要求:根据 日期年月日、金额范围小值-大值、窗口编号查询入账记录;编写main测试类输入查询条件打印查询结果打印内容包括:记录编号 入账时间 入账金额 窗口编号 窗口名 餐饮类型是名字不是数字
首先,需要创建两个实体类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();
}
}
}
这样,就完成了关于记录的多条件查询的代码编写
原文地址: https://www.cveoy.top/t/topic/ioVj 著作权归作者所有。请勿转载和采集!