以下是相关代码的示例:

  1. 实体类 Window.java:

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

// 省略getter和setter方法

}

  1. 实体类 AccountRecord.java:

public class AccountRecord { private int recordId; private Date recordDate; private double amount; private int windowId;

// 省略getter和setter方法

}

  1. 数据访问对象类 WindowDao.java:

import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List;

public class WindowDao { public List getWindowsByWindowId(int windowId) { List windows = new ArrayList<>(); // 建立数据库连接 Connection conn = DBUtil.getConnection(); PreparedStatement pstmt = null; ResultSet rs = null;

    try {
        // 执行查询语句
        String sql = "SELECT * FROM window WHERE windowId = ?";
        pstmt = conn.prepareStatement(sql);
        pstmt.setInt(1, windowId);
        rs = pstmt.executeQuery();
        
        // 处理查询结果
        while (rs.next()) {
            Window window = new Window();
            window.setWindowId(rs.getInt("windowId"));
            window.setWindowName(rs.getString("windowName"));
            window.setCateringType(rs.getString("cateringType"));
            window.setManagerPhoneNumber(rs.getString("managerPhoneNumber"));
            windows.add(window);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        // 关闭数据库连接
        DBUtil.closeResultSet(rs);
        DBUtil.closeStatement(pstmt);
        DBUtil.closeConnection(conn);
    }
    
    return windows;
}

}

  1. 数据访问对象类 AccountRecordDao.java:

import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.Date; import java.util.List;

public class AccountRecordDao { public List getAccountRecordsByConditions(Date date, double minAmount, double maxAmount, int windowId) { List records = new ArrayList<>(); // 建立数据库连接 Connection conn = DBUtil.getConnection(); PreparedStatement pstmt = null; ResultSet rs = null;

    try {
        // 执行查询语句
        String sql = "SELECT ar.recordId, ar.recordDate, ar.amount, ar.windowId, w.windowName, w.cateringType " +
                     "FROM accountRecord ar " +
                     "JOIN window w ON ar.windowId = w.windowId " +
                     "WHERE ar.recordDate = ? " +
                     "AND ar.amount >= ? " +
                     "AND ar.amount <= ? " +
                     "AND ar.windowId = ?";
        pstmt = conn.prepareStatement(sql);
        pstmt.setDate(1, new java.sql.Date(date.getTime()));
        pstmt.setDouble(2, minAmount);
        pstmt.setDouble(3, maxAmount);
        pstmt.setInt(4, windowId);
        rs = pstmt.executeQuery();
        
        // 处理查询结果
        while (rs.next()) {
            AccountRecord record = new AccountRecord();
            record.setRecordId(rs.getInt("recordId"));
            record.setRecordDate(rs.getDate("recordDate"));
            record.setAmount(rs.getDouble("amount"));
            record.setWindowId(rs.getInt("windowId"));
            
            Window window = new Window();
            window.setWindowName(rs.getString("windowName"));
            window.setCateringType(rs.getString("cateringType"));
            record.setWindow(window);
            
            records.add(record);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        // 关闭数据库连接
        DBUtil.closeResultSet(rs);
        DBUtil.closeStatement(pstmt);
        DBUtil.closeConnection(conn);
    }
    
    return records;
}

}

  1. 服务类 AccountRecordService.java:

import java.util.Date; import java.util.List;

public class AccountRecordService { private AccountRecordDao accountRecordDao;

public List<AccountRecord> getAccountRecordsByConditions(Date date, double minAmount, double maxAmount, int windowId) {
    return accountRecordDao.getAccountRecordsByConditions(date, minAmount, maxAmount, windowId);
}

// 省略其他服务方法

}

注意:上述代码中的DBUtil类是一个数据库工具类,用于建立数据库连接和关闭连接,可以自行实现。

使用示例:

public static void main(String[] args) { AccountRecordService accountRecordService = new AccountRecordService();

// 设置查询条件
Date date = new Date(); // 日期为当前日期
double minAmount = 100; // 最小金额为100
double maxAmount = 1000; // 最大金额为1000
int windowId = 1; // 窗口编号为1

// 执行查询
List<AccountRecord> records = accountRecordService.getAccountRecordsByConditions(date, minAmount, maxAmount, windowId);

// 打印查询结果
for (AccountRecord record : records) {
    System.out.println("记录编号:" + record.getRecordId());
    System.out.println("入账时间:" + record.getRecordDate());
    System.out.println("入账金额:" + record.getAmount());
    System.out.println("窗口编号:" + record.getWindowId());
    System.out.println("窗口名:" + record.getWindow().getWindowName());
    System.out.println("餐饮类型:" + record.getWindow().getCateringType());
    System.out.println("--------------------------");
}
这两个实体:窗口:窗口编号 窗口名字 餐饮类型 负责人手机号入账记录:记录编号 入账时间 入账金额 编写jdbc相关代码model dao service完成关于记录的多条件查询:要求:根据 日期年月日、金额范围小值-大值、窗口编号查询入账记录;输入查询条件打印查询结果打印内容包括:记录编号 入账时间 入账金额 窗口编号 窗口名 餐饮类型是名字不是数字sql代码

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

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