在Java里如何实现商品管理与查询功能_Java基础CRUD项目说明-java教程

用ArrayList暂存商品实现增删改查,id必须唯一,操作前先findById校验存在性,查询分findById和findByName两类,返回统一List避免null,控制台用switch分支管理流程,修改须调用setter而非新建对象。

用 ArrayList 存商品,别急着上数据库

新手直接连 MySQL 容易卡在驱动、URL、异常处理上,先用内存集合把增删改查逻辑跑通更实际。ArrayList 足够承载百条以内商品数据,所有操作都围绕它展开。重点不是“多快”,而是“每步能 print 出来”。Product 类至少要有 id、name、price 三个字段,且 id 必须唯一——否则后续按 ID 查找会出错。

  • add(Product p):插入前先遍历检查 id 是否已存在,重复就跳过或抛 IllegalArgumentException
  • findById(int id):用 for 循环逐个比对,别依赖 stream().filter(),避免初学时搞不清空指针或 Optional 处理
  • 删除和修改也必须先 findById,确认对象存在再操作,否则容易 NullPointerException

查询要分场景:模糊搜名字 vs 精确查 ID

用户输入 “手机” 和输入 “1001” 是两类需求,代码不能混在一起写。一个方法只做一件事:findByName(String keyword) 做子串匹配(用 name.contains(keyword)),findById(int id) 做数值相等判断。别把两个逻辑塞进同一个方法里加 if 分支——后期加价格区间查询、分类筛选时会越来越难维护。

  • name.contains(keyword) 区分大小写,如需忽略,改用 name.toLowerCase().contains(keyword.toLowerCase())
  • 返回结果统一用 List,即使只查到一个也返回单元素列表,调用方不用反复判 null 或类型转换
  • 查不到时返回空 new ArrayList(),而不是 null,避免调用方漏判空指针

控制台交互别写死 while(true),用 switch + break 控制流程

很多教程用无限循环加 break 跳出,实际一不小心就陷入死循环。更稳妥的是把菜单选项转成整数,用 switch 分支明确每个操作的入口和出口:

System.out.println("1. 添加商品");
System.out.println("2. 按ID查询");
System.out.println("3. 按名称搜索");
System.out.print("请选择:");
int choice = scanner.nextInt();
switch (choice) {
    case 1: addProduct(); break;
    case 2: showById(); break;
    case 3: showByName(); break;
    default: System.out.println("无效选项"); break;
}

这样每选一次就执行一个动作,不自动回到开头,方便调试单个功能;想循环只需在外层包一层 while,且可随时加退出条件(比如输入 0 就 break)。

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » 在Java里如何实现商品管理与查询功能_Java基础CRUD项目说明-java教程
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1393+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4014654+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1393+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4014654+
  • 本周更新: 0+
  • 最后更新: 2026-03-16