Backend Development 21 min read

Simple Food Delivery Ordering System (No Database) – Java Console Implementation

This article presents a complete, step‑by‑step Java console application that implements a rudimentary food‑delivery ordering system without a database, covering entity classes, a generic DAO interface, in‑memory management classes for admins, dishes, users and orders, a menu‑driven UI, and a test driver.

Java Captain
Java Captain
Java Captain
Simple Food Delivery Ordering System (No Database) – Java Console Implementation

The tutorial walks through building a "fool‑proof" food‑delivery ordering system in pure Java, using only in‑memory collections (Map and List) to store data for dishes, users, orders, and administrators.

Data model classes are defined first:

package com.softeem.lesson23.test2; public class Admin { private String aID; private String account; private String apwd; /* getters, setters, constructors */ }

public class Dishes { private String dID; private String dname; private String dtype; private LocalDate dtime; private double price; private int dsales; private int dstocks; /* getters, setters, constructors */ }

public class Order { private String OrderID; private LocalDateTime utime; private Dishes dishes; private int Ordernum; private String uID; private Double Orderprice; private int OrderValue; /* getters, setters, constructors */ }

public class User { private String uID; private String uname; private String usex; private String upwd; private String uadress; private String utel; private LocalDateTime utime; /* getters, setters, constructors */ }

DAO interface provides generic CRUD operations:

public interface DAO { void insert(T t); T findById(String id); List findAll(); void delete(String id); }

Management classes implement DAO for each entity and add specific business logic. Example for dishes:

public class DishesSys implements DAO { static Map dishesmap = new HashMap<>(); @Override public void insert(Dishes t){ dishesmap.put(t.getdID(),t); } @Override public Dishes findById(String id){ return dishesmap.get(id); } @Override public List findAll(){ return new ArrayList<>(dishesmap.values()); } @Override public void delete(String id){ dishesmap.remove(id); } public void selectBytype(String typename){ /* print dishes of given type */ } }

Similar classes OrderSys and UserSys manage orders and users, respectively, using HashMap and ArrayList to store objects and provide lookup by ID or user ID.

Admin system ( AdminSys ) aggregates the other management classes and implements the admin‑side menu functions such as adding dishes, viewing with pagination, editing prices, deleting items, managing users, and changing order status. Sample method for adding a dish:

public void addDishes(){ System.out.println("请输入您要添加的菜品:(按照:菜品ID/菜品名/菜品类型/单价/月销量/总数量)"); String str = sc.next(); String[] info = str.split("/"); if(info.length<6){ System.out.println("天啦撸,输入失败啦,请重新输入!"); addDishes(); } else { LocalDate dtime = LocalDate.now(); Dishes t = new Dishes(info[0],info[1],info[2],dtime,Double.parseDouble(info[3]),Integer.parseInt(info[4]),Integer.parseInt(info[5])); d.insert(t); System.out.println("小主,恭喜你!添加成功了"); } }

The Menu class provides the console UI, prompting for login credentials, distinguishing admin and regular user flows, and presenting numbered options. Example snippet:

public void showMenu(){ admin.addMessage(); System.out.println("请输入账号和密码:按照(账号/密码)"); String str = sc.next(); String[] info = str.split("/"); if(info.length<2){ System.out.println("输入有误,请重新输入:"); showMenu(); } else { if(admin.findById(info[0])!=null && Objects.equals(admin.findById(info[0]).getApwd(),info[1])){ adminMenu(); } else if(admin.findUserByid(info[0])!=null && Objects.equals(info[1],admin.findUserByid(info[0]).getUpwd())){ User user = admin.findUserByid(info[0]); userMenu(user); } else { System.out.println("输入有误,请重新输入...."); showMenu(); } } }

Both adminMenu() and userMenu(User user) use switch statements on string inputs to call the appropriate methods, ensuring the program does not crash on invalid entries.

Finally, a simple Test class launches the application:

public class Test { public static void main(String[] args){ Menu m = new Menu(); m.showMenu(); } }

The article also includes several screenshots of the running program, demonstrating login, menu navigation, dish listing, order creation, and data modification.

Design PatternsJavaBackend DevelopmentCRUDConsole ApplicationIn-Memory Storage
Java Captain
Written by

Java Captain

Focused on Java technologies: SSM, the Spring ecosystem, microservices, MySQL, MyCat, clustering, distributed systems, middleware, Linux, networking, multithreading; occasionally covers DevOps tools like Jenkins, Nexus, Docker, ELK; shares practical tech insights and is dedicated to full‑stack Java development.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.