{"title":"食堂窗口入账记录系统数据库设计与多条件查询实现","description":"本文介绍了食堂窗口入账记录系统的数据库设计和使用JDBC实现的多条件查询功能。包括创建窗口和入账记录表、添加外键、填充数据、编写Java代码实现根据日期、金额范围、窗口编号查询记录等内容。","keywords":"食堂, 窗口, 入账记录, 数据库设计, JDBC, 多条件查询, Java","content":"1、完成两个表的创建:\n\nCREATE TABLE `窗口` (\n `窗口编号` INT PRIMARY KEY,\n `窗口名字` VARCHAR(50),\n `餐饮类型` INT,\n `负责人手机号` VARCHAR(11)\n);\n\nCREATE TABLE `入账记录` (\n `记录编号` INT PRIMARY KEY,\n `入账时间` DATETIME,\n `入账金额` DECIMAL(10, 2)\n);\n\n2、分析表关系,并添加外键字段,实现表关系:\n\n窗口表和入账记录表之间的关系为一对多关系,一个窗口可以有多个入账记录。\n在入账记录表中添加外键字段 `窗口编号`,关联到窗口表的 `窗口编号` 字段。\nALTER TABLE `入账记录` ADD COLUMN `窗口编号` INT;\n\n3、完成向窗口表填加50条记录:\n\nINSERT INTO `窗口` (`窗口编号`, `窗口名字`, `餐饮类型`, `负责人手机号`) VALUES\n(1, '窗口1', 1, '13012345678'),\n(2, '窗口2', 2, '13112345678'),\n...\n(50, '窗口50', 4, '13912345678');\n\n4、完成向记录表添加10000条记录:\n\nINSERT INTO `入账记录` (`记录编号`, `入账时间`, `入账金额`, `窗口编号`) VALUES\n(1, '2022-07-24 08:30:00', 10.50, 1),\n(2, '2022-07-24 09:15:00', 8.20, 2),\n...\n(10000, '2022-07-30 23:45:00', 15.80, 50);\n\n5、编写Java代码完成关于记录的多条件查询:\n\n首先创建实体类:\njava\npublic class 入账记录 {\n private int 记录编号;\n private Date 入账时间;\n private BigDecimal 入账金额;\n private int 窗口编号;\n // getters and setters\n}\n\npublic class 窗口 {\n private int 窗口编号;\n private String 窗口名字;\n private int 餐饮类型;\n private String 负责人手机号;\n // getters and setters\n}\n\n\n然后创建DAO接口和实现类:\njava\npublic interface 入账记录DAO {\n List<入账记录> 根据条件查询(LocalDate 日期, BigDecimal 最小金额, BigDecimal 最大金额, int 窗口编号);\n}\n\npublic class 入账记录DAOImpl implements 入账记录DAO {\n // 实现根据条件查询方法\n @Override\n public List<入账记录> 根据条件查询(LocalDate 日期, BigDecimal 最小金额, BigDecimal 最大金额, int 窗口编号) {\n // JDBC查询代码\n }\n}\n\n\n接下来创建Service类:\njava\npublic class 入账记录Service {\n private 入账记录DAO 入账记录DAO;\n\n public 入账记录Service(入账记录DAO 入账记录DAO) {\n this.入账记录DAO = 入账记录DAO;\n }\n\n public List<入账记录> 根据条件查询(LocalDate 日期, BigDecimal 最小金额, BigDecimal 最大金额, int 窗口编号) {\n return 入账记录DAO.根据条件查询(日期, 最小金额, 最大金额, 窗口编号);\n }\n}\n\n\n最后创建Main测试类:\njava\npublic class Main {\n public static void main(String[] args) {\n // 初始化DAO和Service\n 入账记录DAO 入账记录DAO = new 入账记录DAOImpl();\n 入账记录Service 入账记录Service = new 入账记录Service(入账记录DAO);\n\n // 输入查询条件\n LocalDate 日期 = LocalDate.of(2022, 7, 28);\n BigDecimal 最小金额 = new BigDecimal(5.00);\n BigDecimal 最大金额 = new BigDecimal(10.00);\n int 窗口编号 = 1;\n\n // 调用Service方法查询记录\n List<入账记录> 入账记录列表 = 入账记录Service.根据条件查询(日期, 最小金额, 最大金额, 窗口编号);\n\n // 打印查询结果\n for (入账记录 入账记录 : 入账记录列表) {\n System.out.println("记录编号:" + 入账记录.get记录编号());\n System.out.println("入账时间:" + 入账记录.get入账时间());\n System.out.println("入账金额:" + 入账记录.get入账金额());\n System.out.println("窗口编号:" + 入账记录.get窗口编号());\n // 根据窗口编号查询窗口信息并打印\n 窗口 窗口 = 窗口DAO.根据编号查询(入账记录.get窗口编号());\n System.out.println("窗口名:" + 窗口.get窗口名字());\n System.out.println("餐饮类型:" + 窗口.get餐饮类型());\n System.out.println("------------------------");\n }\n }\n}\n\n\n这样就完成了关于记录的多条件查询的编写和测试。


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

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