Java JDBC 多条件查询实现 - 入账记录管理系统
首先,需要创建两个实体类 Window 和 Record,分别对应窗口和入账记录。
public class Window {
private int windowId;
private String windowName;
private String cateringType;
private String managerPhoneNumber;
// 省略构造方法和getter/setter方法
}
public class Record {
private int recordId;
private Date recordTime;
private double recordAmount;
private int windowId;
// 省略构造方法和getter/setter方法
}
接下来,创建 Dao 层的接口和实现类,用于与数据库进行交互。
public interface WindowDao {
Window getWindowById(int windowId);
}
public class WindowDaoImpl implements WindowDao {
@Override
public Window getWindowById(int windowId) {
// 查询数据库,根据窗口编号获取窗口信息
// 返回窗口对象
}
}
public interface RecordDao {
List<Record> getRecordsByConditions(Date date, double minAmount, double maxAmount, int windowId);
}
public class RecordDaoImpl implements RecordDao {
@Override
public List<Record> getRecordsByConditions(Date date, double minAmount, double maxAmount, int windowId) {
// 查询数据库,根据条件获取入账记录列表
// 返回入账记录列表
}
}
然后,创建 Service 层的接口和实现类,用于处理业务逻辑。
public interface RecordService {
List<Record> getRecordsByConditions(Date date, double minAmount, double maxAmount, int windowId);
}
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;
}
}
最后,创建一个测试类来验证代码的正确性。
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/p6KF 著作权归作者所有。请勿转载和采集!