1.項目概述
1.1.項目演示
- 運行 “餓了么商家后臺管理系統(tǒng)” 塔粒,演示應(yīng)用程序效果。
1.2.項目目標
- 本項目為課程級貫穿項目中的第一個項目(JDBC項目筐摘、前端項目卒茬、javaWeb項目)。
- 本項目完成后咖熟,學(xué)員將能夠使用javaSE+JDBC+MySql技術(shù)開發(fā)基于控制臺的C/S結(jié)構(gòu)應(yīng)用程序圃酵。
1.3.項目中所涉及到相關(guān)知識點
- 封裝JDBC
- 封裝DAO
- 領(lǐng)域模型中的實體類
- 增刪改查操作
- 多條件模糊查詢
- JDBC事務(wù)管理
- 表的主外鍵關(guān)系
1.4.數(shù)據(jù)庫設(shè)計
1.4.1.DB一覽表
No |
表名稱 |
中文名 |
說明 |
1 |
business |
商家表 |
存儲所有商家信息 |
2 |
food |
食品表 |
存儲每個商家所擁有的所有食品信息 |
3 |
admin |
管理員表 |
存儲管理員信息 |
1.5.2.表結(jié)構(gòu)
約束類型標識:
PK:primary key 主鍵
FK:foreign key 外鍵
NN:not null 非空
UQ:unique 唯一索引
AI:auto increment 自增
1.5.2.1.business(商家表)
No |
字段名 |
數(shù)據(jù)類型 |
size |
默認値 |
約束 |
說明 |
1 |
businessId |
int |
|
|
PK、AI球恤、NN |
商家編號 |
2 |
password |
varchar |
20 |
|
NN |
密碼 |
3 |
businessName |
varchar |
40 |
|
NN |
商家名稱 |
4 |
businessAddress |
varchar |
50 |
|
|
商家地址 |
5 |
businessExplain |
varchar |
40 |
|
|
商家介紹 |
6 |
starPrice |
decimal |
(5,2) |
0.00 |
|
起送費 |
7 |
deliveryPrice |
decimal |
(5,2) |
0.00 |
|
配送費 |
1.5.2.2.food(食品表)
No |
字段名 |
數(shù)據(jù)類型 |
size |
默認値 |
約束 |
說明 |
1 |
foodId |
int |
|
|
PK辜昵、AI荸镊、NN |
食品編號 |
2 |
foodName |
varchar |
30 |
|
NN |
食品名稱 |
3 |
foodExplain |
varchar |
30 |
|
|
食品介紹 |
4 |
foodPrice |
decimal |
(5,2) |
|
NN |
食品價格 |
5 |
businessId |
int |
|
|
FK咽斧、NN |
所屬商家編號 |
1.5.2.3.admin(管理員表)
No |
字段名 |
數(shù)據(jù)類型 |
size |
默認値 |
約束 |
說明 |
1 |
adminId |
int |
|
|
PK堪置、AI、NN |
管理員編號 |
2 |
adminName |
varchar |
20 |
|
NN张惹、UQ |
管理員名稱 |
3 |
password |
varchar |
20 |
|
NN |
密碼 |
2.項目搭建
2.1.開發(fā)環(huán)境檢查
- 開發(fā)工具:SpringToolSuite(STS)
- 檢查開發(fā)工具的jdk配置:jdk8
- 檢查開發(fā)工具的文件編碼配置:utf-8
2.2.搭建javaWeb工程總體架構(gòu)
2.2.1.工程類型
創(chuàng)建工程類型:java Project
2.2.2.導(dǎo)入jar包
- mysql-connector-java-bin.jar
2.2.3.工程目錄結(jié)構(gòu)
4.項目代碼
4.1.領(lǐng)域模型(PO)
4.1.1.Business
package com.neusoft.elm.po;
public class Business {
private Integer businessId;
private String password;
private String businessName;
private String businessAddress;
private String businessExplain;
private Double starPrice;
private Double deliveryPrice;
@Override
public String toString() {
return "\n商家編號:"+this.businessId+
"\n商家名稱:"+this.businessName+
"\n商家地址:"+this.businessAddress+
"\n商家介紹:"+this.businessExplain+
"\n起送費:¥"+this.starPrice+
"\n配送費:¥"+this.deliveryPrice+"\n";
}
//get舀锨、set ... ...
}
4.1.2.Food
package com.neusoft.elm.po;
public class Food {
private Integer foodId;
private String foodName;
private String foodExplain;
private Double foodPrice;
private Integer businessId;
@Override
public String toString() {
return "\n食品編號:"+this.foodId+
"\n食品名稱:"+this.foodName+
"\n食品介紹:"+this.foodExplain+
"\n食品價格:"+this.foodPrice+
"\n所屬商家:"+this.businessId;
}
//get、set ... ...
}
4.1.3.Admin
package com.neusoft.elm.po;
public class Admin {
private Integer adminId;
private String adminName;
private String password;
//get宛逗、set ... ...
}
4.2.Dao層代碼
4.2.1.Business
package com.neusoft.elm.dao;
import java.util.List;
import com.neusoft.elm.po.Business;
public interface BusinessDao {
public List<Business> listBusiness(String businessName,String businessAddress);
public int saveBusiness(String businessName);
public int removeBusiness(int businessId);
public Business getBusinessByIdByPass(Integer businessId,String password);
public Business getBusinessById(Integer businessId);
public int updateBusiness(Business business);
public int updateBusinessByPassword(Integer businessId,String password);
}
package com.neusoft.elm.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.neusoft.elm.dao.BusinessDao;
import com.neusoft.elm.po.Admin;
import com.neusoft.elm.po.Business;
import com.neusoft.elm.util.DBUtil;
public class BusinessDaoImpl implements BusinessDao{
private Connection con = null;
private PreparedStatement pst = null;
private ResultSet rs = null;
@Override
public List<Business> listBusiness(String businessName,String businessAddress) {
List<Business> list = new ArrayList<>();
StringBuffer sql = new StringBuffer("select * from business where 1=1 ");
if(businessName!=null&&!businessName.equals("")) {
sql.append(" and businessName like '%"+businessName+"%' ");
}
if(businessAddress!=null&&!businessAddress.equals("")) {
sql.append(" and businessAddress like '%"+businessAddress+"%' ");
}
try {
con = DBUtil.getConnection();
pst = con.prepareStatement(sql.toString());
rs = pst.executeQuery();
while(rs.next()) {
Business business = new Business();
business.setBusinessId(rs.getInt("businessId"));
business.setPassword(rs.getString("password"));
business.setBusinessName(rs.getString("businessName"));
business.setBusinessAddress(rs.getString("businessAddress"));
business.setBusinessExplain(rs.getString("businessExplain"));
business.setStarPrice(rs.getDouble("starPrice"));
business.setDeliveryPrice(rs.getDouble("deliveryPrice"));
list.add(business);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(rs, pst, con);
}
return list;
}
@Override
public int saveBusiness(String businessName) {
int businessId = 0;
String sql = "insert into business(businessName,password) values(?,'123')";
try {
con = DBUtil.getConnection();
//設(shè)置返回自增長列值
pst = con.prepareStatement(sql,PreparedStatement.RETURN_GENERATED_KEYS);
pst.setString(1, businessName);
pst.executeUpdate();
//獲取自增長列值(一行一列)
rs = pst.getGeneratedKeys();
if(rs.next()) {
businessId = rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(rs, pst, con);
}
return businessId;
}
@Override
public int removeBusiness(int businessId) {
int result = 0;
String delFootSql = "delete from food where businessId=?";
String delBusinessSql = "delete from business where businessId=?";
try {
con = DBUtil.getConnection();
//開啟一個事務(wù)
con.setAutoCommit(false);
pst = con.prepareStatement(delFootSql);
pst.setInt(1, businessId);
pst.executeUpdate();
pst = con.prepareStatement(delBusinessSql);
pst.setInt(1, businessId);
result = pst.executeUpdate();
con.commit();
} catch (SQLException e) {
result = 0;
try {
con.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
e.printStackTrace();
} finally {
DBUtil.close(null, pst, con);
}
return result;
}
@Override
public Business getBusinessByIdByPass(Integer businessId,String password) {
Business business = null;
String sql = "select * from business where businessId=? and password=?";
try {
con = DBUtil.getConnection();
pst = con.prepareStatement(sql.toString());
pst.setInt(1, businessId);
pst.setString(2, password);
rs = pst.executeQuery();
while(rs.next()) {
business = new Business();
business.setBusinessId(rs.getInt("businessId"));
business.setPassword(rs.getString("password"));
business.setBusinessName(rs.getString("businessName"));
business.setBusinessAddress(rs.getString("businessAddress"));
business.setBusinessExplain(rs.getString("businessExplain"));
business.setStarPrice(rs.getDouble("starPrice"));
business.setDeliveryPrice(rs.getDouble("deliveryPrice"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(rs, pst, con);
}
return business;
}
@Override
public Business getBusinessById(Integer businessId) {
Business business = null;
String sql = "select * from business where businessId=?";
try {
con = DBUtil.getConnection();
pst = con.prepareStatement(sql.toString());
pst.setInt(1, businessId);
rs = pst.executeQuery();
while(rs.next()) {
business = new Business();
business.setBusinessId(rs.getInt("businessId"));
business.setPassword(rs.getString("password"));
business.setBusinessName(rs.getString("businessName"));
business.setBusinessAddress(rs.getString("businessAddress"));
business.setBusinessExplain(rs.getString("businessExplain"));
business.setStarPrice(rs.getDouble("starPrice"));
business.setDeliveryPrice(rs.getDouble("deliveryPrice"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(rs, pst, con);
}
return business;
}
@Override
public int updateBusiness(Business business) {
int result = 0;
String sql = "update business set businessName=?,businessAddress=?,businessExplain=?,starPrice=?,deliveryPrice=? where businessId=?";
try {
con = DBUtil.getConnection();
pst = con.prepareStatement(sql);
pst.setString(1, business.getBusinessName());
pst.setString(2, business.getBusinessAddress());
pst.setString(3, business.getBusinessExplain());
pst.setDouble(4, business.getStarPrice());
pst.setDouble(5, business.getDeliveryPrice());
pst.setInt(6, business.getBusinessId());
result = pst.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(null, pst, con);
}
return result;
}
@Override
public int updateBusinessByPassword(Integer businessId,String password) {
int result = 0;
String sql = "update business set password=? where businessId=?";
try {
con = DBUtil.getConnection();
pst = con.prepareStatement(sql);
pst.setString(1, password);
pst.setInt(2, businessId);
result = pst.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(null, pst, con);
}
return result;
}
}
4.2.2.Food
package com.neusoft.elm.dao;
import java.util.List;
import com.neusoft.elm.po.Food;
public interface FoodDao {
public List<Food> listFoodByBusinessId(Integer businessId);
public int saveFood(Food food);
public Food getFoodById(Integer foodId);
public int updateFood(Food food);
public int removeFood(Integer foodId);
}
package com.neusoft.elm.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.neusoft.elm.dao.FoodDao;
import com.neusoft.elm.po.Food;
import com.neusoft.elm.util.DBUtil;
public class FoodDaoImpl implements FoodDao{
private Connection con = null;
private PreparedStatement pst = null;
private ResultSet rs = null;
@Override
public List<Food> listFoodByBusinessId(Integer businessId) {
List<Food> list = new ArrayList<>();
String sql = "select * from food where businessId=?";
try {
con = DBUtil.getConnection();
pst = con.prepareStatement(sql);
pst.setInt(1, businessId);
rs = pst.executeQuery();
while(rs.next()) {
Food food = new Food();
food.setFoodId(rs.getInt("foodId"));
food.setFoodName(rs.getString("foodName"));
food.setFoodExplain(rs.getString("foodExplain"));
food.setFoodPrice(rs.getDouble("foodPrice"));
food.setBusinessId(rs.getInt("businessId"));
list.add(food);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(rs, pst, con);
}
return list;
}
@Override
public int saveFood(Food food) {
int result = 0;
String sql = "insert into food values(null,?,?,?,?)";
try {
con = DBUtil.getConnection();
pst = con.prepareStatement(sql);
pst.setString(1, food.getFoodName());
pst.setString(2, food.getFoodExplain());
pst.setDouble(3, food.getFoodPrice());
pst.setInt(4, food.getBusinessId());
result = pst.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(null, pst, con);
}
return result;
}
@Override
public Food getFoodById(Integer foodId) {
Food food = null;
String sql = "select * from food where foodId=?";
try {
con = DBUtil.getConnection();
pst = con.prepareStatement(sql);
pst.setInt(1, foodId);
rs = pst.executeQuery();
while(rs.next()) {
food = new Food();
food.setFoodId(rs.getInt("foodId"));
food.setFoodName(rs.getString("foodName"));
food.setFoodExplain(rs.getString("foodExplain"));
food.setFoodPrice(rs.getDouble("foodPrice"));
food.setBusinessId(rs.getInt("businessId"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(rs, pst, con);
}
return food;
}
@Override
public int updateFood(Food food) {
int result = 0;
String sql = "update food set foodName=?,foodExplain=?,foodPrice=? where foodId=?";
try {
con = DBUtil.getConnection();
pst = con.prepareStatement(sql);
pst.setString(1, food.getFoodName());
pst.setString(2, food.getFoodExplain());
pst.setDouble(3, food.getFoodPrice());
pst.setInt(4, food.getFoodId());
result = pst.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(null, pst, con);
}
return result;
}
@Override
public int removeFood(Integer foodId) {
int result = 0;
String sql = "delete from food where foodId=?";
try {
con = DBUtil.getConnection();
pst = con.prepareStatement(sql);
pst.setInt(1, foodId);
result = pst.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(null, pst, con);
}
return result;
}
}
4.2.3.Admin
package com.neusoft.elm.dao;
import com.neusoft.elm.po.Admin;
public interface AdminDao {
public Admin getAdminByNameByPass(String adminName,String password);
}
package com.neusoft.elm.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.neusoft.elm.dao.AdminDao;
import com.neusoft.elm.po.Admin;
import com.neusoft.elm.util.DBUtil;
public class AdminDaoImpl implements AdminDao{
private Connection con = null;
private PreparedStatement pst = null;
private ResultSet rs = null;
@Override
public Admin getAdminByNameByPass(String adminName, String password) {
Admin admin = null;
String sql = "select * from admin where adminName=? and password=?";
try {
con = DBUtil.getConnection();
pst = con.prepareStatement(sql);
pst.setString(1, adminName);
pst.setString(2, password);
rs = pst.executeQuery();
while(rs.next()) {
admin = new Admin();
admin.setAdminId(rs.getInt("adminId"));
admin.setAdminName(rs.getString("adminName"));
admin.setPassword(rs.getString("password"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(rs, pst, con);
}
return admin;
}
}
4.3.View層代碼
4.3.1.Business
package com.neusoft.elm.view;
import com.neusoft.elm.po.Business;
public interface BusinessView {
public void listBusinessAll();
public void listBusiness();
public void saveBusiness();
public void removeBusiness();
public Business login();
public void showBusiness(Integer businessId);
public void editBusiness(Integer businessId);
public void updateBusinessByPassword(Integer businessId);
}
package com.neusoft.elm.view.impl;
import java.util.List;
import java.util.Scanner;
import com.neusoft.elm.dao.BusinessDao;
import com.neusoft.elm.dao.impl.BusinessDaoImpl;
import com.neusoft.elm.po.Business;
import com.neusoft.elm.view.BusinessView;
public class BusinessViewImpl implements BusinessView{
private Scanner input = new Scanner(System.in);
@Override
public void listBusinessAll() {
BusinessDao dao = new BusinessDaoImpl();
List<Business> list = dao.listBusiness(null,null);
System.out.println("商家編號\t商家名稱\t商家地址\t商家介紹\t起送費\t配送費");
for(Business b : list) {
System.out.println(b.getBusinessId()+"\t"+b.getBusinessName()+"\t"+b.getBusinessAddress()+"\t"+b.getBusinessExplain()+"\t"+b.getStarPrice()+"\t"+b.getDeliveryPrice());
}
}
@Override
public void listBusiness() {
String businessName = "";
String businessAddress = "";
String inputStr = "";
System.out.println("是否需要輸入商家名稱關(guān)鍵詞(y/n):");
inputStr = input.next();
if(inputStr.equals("y")) {
System.out.println("請輸入商家名稱關(guān)鍵詞:");
businessName = input.next();
}
System.out.println("是否需要輸入商家地址關(guān)鍵詞(y/n):");
inputStr = input.next();
if(inputStr.equals("y")) {
System.out.println("請輸入商家地址關(guān)鍵詞:");
businessAddress = input.next();
}
BusinessDao dao = new BusinessDaoImpl();
List<Business> list = dao.listBusiness(businessName, businessAddress);
System.out.println("商家編號\t商家名稱\t商家地址\t商家介紹\t起送費\t配送費");
for(Business b : list) {
System.out.println(b.getBusinessId()+"\t"+b.getBusinessName()+"\t"+b.getBusinessAddress()+"\t"+b.getBusinessExplain()+"\t"+b.getStarPrice()+"\t"+b.getDeliveryPrice());
}
}
@Override
public void saveBusiness() {
System.out.println("請輸入商家名稱:");
String businessName = input.next();
BusinessDao dao = new BusinessDaoImpl();
int businessId = dao.saveBusiness(businessName);
if(businessId>0) {
System.out.println("新建商家成功坎匿!商家編號為:"+businessId);
}else {
System.out.println("新建商家失敗雷激!");
}
}
@Override
public void removeBusiness() {
System.out.println("請輸入商家編號:");
int businessId = input.nextInt();
BusinessDao dao = new BusinessDaoImpl();
System.out.println("確認要刪除嗎(y/n):");
if(input.next().equals("y")) {
int result = dao.removeBusiness(businessId);
if(result==1) {
System.out.println("刪除商家成功替蔬!");
}else {
System.out.println("刪除商家失敗屎暇!");
}
}
}
@Override
public Business login() {
System.out.println("請輸入商家編號:");
int businessId = input.nextInt();
System.out.println("請輸入密碼:");
String password = input.next();
BusinessDao dao = new BusinessDaoImpl();
return dao.getBusinessByIdByPass(businessId, password);
}
@Override
public void showBusiness(Integer businessId) {
BusinessDao dao = new BusinessDaoImpl();
Business business = dao.getBusinessById(businessId);
System.out.println(business);
}
@Override
public void editBusiness(Integer businessId) {
//先將商家信息查詢出來顯示承桥,然后用戶才能更新
BusinessDao dao = new BusinessDaoImpl();
Business business = dao.getBusinessById(businessId);
System.out.println(business);
String inputStr = "";
System.out.println("是否修改商家名稱(y/n):");
inputStr = input.next();
if(inputStr.equals("y")) {
System.out.println("請輸入新的商家名稱:");
business.setBusinessName(input.next());
}
System.out.println("是否修改商家地址(y/n):");
inputStr = input.next();
if(inputStr.equals("y")) {
System.out.println("請輸入新的商家地址:");
business.setBusinessAddress(input.next());
}
System.out.println("是否修改商家介紹(y/n):");
inputStr = input.next();
if(inputStr.equals("y")) {
System.out.println("請輸入新的商家介紹:");
business.setBusinessExplain(input.next());
}
System.out.println("是否修改起送費(y/n):");
inputStr = input.next();
if(inputStr.equals("y")) {
System.out.println("請輸入新的起送費:");
business.setStarPrice(input.nextDouble());
}
System.out.println("是否修改配送費(y/n):");
inputStr = input.next();
if(inputStr.equals("y")) {
System.out.println("請輸入新的配送費:");
business.setDeliveryPrice(input.nextDouble());
}
int result = dao.updateBusiness(business);
if(result>0) {
System.out.println("\n修改商家信息成功!\n");
}else {
System.out.println("\n修改商家信息失敻俊凶异!\n");
}
}
@Override
public void updateBusinessByPassword(Integer businessId) {
BusinessDao dao = new BusinessDaoImpl();
Business business = dao.getBusinessById(businessId);
System.out.println("\n請輸入舊密碼:");
String oldPass = input.next();
System.out.println("\n請輸入新密碼:");
String password = input.next();
System.out.println("\n請再次輸入新密碼:");
String beginPassword = input.next();
if(!business.getPassword().equals(oldPass)) {
System.out.println("\n舊密碼輸入錯誤!");
}else if(!password.equals(beginPassword)) {
System.out.println("\n兩次輸入密碼不一致挤巡!");
}else {
int result = dao.updateBusinessByPassword(businessId, password);
if(result>0) {
System.out.println("\n修改密碼成功剩彬!");
}else {
System.out.println("\n修改密碼失敗矿卑!");
}
}
}
}
4.3.2.Food
package com.neusoft.elm.view;
import java.util.List;
import com.neusoft.elm.po.Food;
public interface FoodView {
public List<Food> showFoodList(Integer businessId);
public void saveFood(Integer businessId);
public void updateFood(Integer businessId);
public void removeFood(Integer businessId);
}
package com.neusoft.elm.view.impl;
import java.util.List;
import java.util.Scanner;
import com.neusoft.elm.dao.FoodDao;
import com.neusoft.elm.dao.impl.FoodDaoImpl;
import com.neusoft.elm.po.Food;
import com.neusoft.elm.view.FoodView;
public class FoodViewImpl implements FoodView{
private Scanner input = new Scanner(System.in);
@Override
public List<Food> showFoodList(Integer businessId) {
FoodDao dao = new FoodDaoImpl();
List<Food> list = dao.listFoodByBusinessId(businessId);
System.out.println("食品編號\t食品名稱\t食品介紹\t食品價格");
for(Food food : list) {
System.out.println(food.getFoodId()+"\t"+food.getFoodName()+"\t"+food.getFoodExplain()+"\t"+food.getFoodPrice());
}
return list;
}
@Override
public void saveFood(Integer businessId) {
Food food = new Food();
System.out.println("請輸入食品名稱:");
food.setFoodName(input.next());
System.out.println("請輸入食品介紹:");
food.setFoodExplain(input.next());
System.out.println("請輸入食品價格:");
food.setFoodPrice(input.nextDouble());
food.setBusinessId(businessId);
FoodDao dao = new FoodDaoImpl();
int result = dao.saveFood(food);
if(result>0) {
System.out.println("\n新增食品成功喉恋!\n");
}else {
System.out.println("\n新增食品失敗母廷!\n");
}
}
@Override
public void updateFood(Integer businessId) {
FoodDao dao = new FoodDaoImpl();
List<Food> list = showFoodList(businessId);
if(list.size()==0) {
System.out.println("沒有任何食品瀑晒!");
}else {
System.out.println("請選擇要更新的食品編號:");
int foodId = input.nextInt();
Food food = dao.getFoodById(foodId);
System.out.println(food);
String inputStr = "";
System.out.println("是否更新食品名稱(y/n):");
inputStr = input.next();
if(inputStr.equals("y")) {
System.out.println("請輸入新的食品名稱:");
food.setFoodName(input.next());
}
System.out.println("是否更新食品介紹(y/n):");
inputStr = input.next();
if(inputStr.equals("y")) {
System.out.println("請輸入新的食品介紹:");
food.setFoodExplain(input.next());
}
System.out.println("是否更新食品價格(y/n):");
inputStr = input.next();
if(inputStr.equals("y")) {
System.out.println("請輸入新的食品價格:");
food.setFoodPrice(input.nextDouble());
}
int result = dao.updateFood(food);
if(result>0) {
System.out.println("\n修改食品成功!\n");
}else {
System.out.println("\n修改食品失斉且狻苔悦!\n");
}
}
}
@Override
public void removeFood(Integer businessId) {
FoodDao dao = new FoodDaoImpl();
List<Food> list = showFoodList(businessId);
if(list.size()==0) {
System.out.println("沒有任何食品!");
}else {
System.out.println("請選擇要刪除的食品編號:");
int foodId = input.nextInt();
System.out.println("確認要刪除嗎(y/n):");
if(input.next().equals("y")) {
int result = dao.removeFood(foodId);
if(result>0) {
System.out.println("\n刪除食品成功椎咧!\n");
}else {
System.out.println("\n刪除食品失斁料辍!\n");
}
}
}
}
}
4.3.3.Admin
package com.neusoft.elm.view;
import com.neusoft.elm.po.Admin;
public interface AdminView {
public Admin login();
}
package com.neusoft.elm.view.impl;
import java.util.Scanner;
import com.neusoft.elm.dao.AdminDao;
import com.neusoft.elm.dao.impl.AdminDaoImpl;
import com.neusoft.elm.po.Admin;
import com.neusoft.elm.view.AdminView;
public class AdminViewImpl implements AdminView{
private Scanner input = new Scanner(System.in);
@Override
public Admin login() {
System.out.println("請輸入管理員名稱:");
String adminName = input.next();
System.out.println("請輸入密碼:");
String password = input.next();
AdminDao dao = new AdminDaoImpl();
return dao.getAdminByNameByPass(adminName, password);
}
}
4.4.程序入口
4.4.1.管理員入口
package com.neusoft.elm;
import java.util.Scanner;
import com.neusoft.elm.po.Admin;
import com.neusoft.elm.view.AdminView;
import com.neusoft.elm.view.BusinessView;
import com.neusoft.elm.view.impl.AdminViewImpl;
import com.neusoft.elm.view.impl.BusinessViewImpl;
public class ElmAdminEntry {
public void work() {
Scanner input = new Scanner(System.in);
System.out.println("---------------------------------------------------------");
System.out.println("|\t\t\t 餓了么后臺管理系統(tǒng) \t\t\t|");
System.out.println("---------------------------------------------------------");
AdminView adminView = new AdminViewImpl();
BusinessView businessView = new BusinessViewImpl();
Admin admin = adminView.login();
//登錄
if(admin!=null) {
int menu = 0;
while(menu!=5) {
//輸出主菜單
System.out.println("\n========= 1.所有商家列表=2.搜索商家=3.新建商家=4.刪除商家=5.退出系統(tǒng) =========");
System.out.println("請輸入你的選擇:");
menu = input.nextInt();
switch(menu) {
case 1:
businessView.listBusinessAll();
break;
case 2:
businessView.listBusiness();
break;
case 3:
businessView.saveBusiness();
break;
case 4:
businessView.removeBusiness();
break;
case 5:
System.out.println("------------------------歡迎下次光臨餓了么后臺管理系統(tǒng)-----------------------");
break;
default:
System.out.println("沒有這個選項勤讽!\n");
break;
}
}
}else {
System.out.println("\n管理員名稱或密碼輸入錯誤!\n");
}
}
public static void main(String[] args) {
new ElmAdminEntry().work();
}
}
4.4.2.商家入口
package com.neusoft.elm;
import java.util.Scanner;
import com.neusoft.elm.po.Business;
import com.neusoft.elm.view.BusinessView;
import com.neusoft.elm.view.FoodView;
import com.neusoft.elm.view.impl.BusinessViewImpl;
import com.neusoft.elm.view.impl.FoodViewImpl;
public class ElmBusinessEntry {
public void work() {
Scanner input = new Scanner(System.in);
System.out.println("---------------------------------------------------------");
System.out.println("|\t\t\t 餓了么后臺管理系統(tǒng) \t\t\t|");
System.out.println("---------------------------------------------------------");
BusinessView businessView = new BusinessViewImpl();
//商家登錄
Business business = businessView.login();
if(business!=null) {
int menu = 0;
while(menu!=5) {
//輸出一級菜單
System.out.println("\n======= 一級菜單(商家管理)1.查看商家信息=2.修改商家信息=3.更新密碼=4.所屬商品管理=5.退出系統(tǒng)=======");
System.out.println("請輸入你的選擇:");
menu = input.nextInt();
switch(menu) {
case 1:
businessView.showBusiness(business.getBusinessId());
break;
case 2:
businessView.editBusiness(business.getBusinessId());
break;
case 3:
businessView.updateBusinessByPassword(business.getBusinessId());
break;
case 4:
foodManager(business.getBusinessId());
break;
case 5:
System.out.println("------------------------歡迎下次光臨餓了么后臺管理系統(tǒng)-----------------------");
break;
default:
System.out.println("沒有這個選項蟋座!\n");
break;
}
}
}else {
System.out.println("商家編號或密碼輸入錯誤!");
}
}
private void foodManager(int businessId) {
Scanner input = new Scanner(System.in);
FoodView foodView = new FoodViewImpl();
int menu = 0;
while(menu!=5) {
//輸出二級菜單
System.out.println("\n======= 二級菜單(食品管理)1.查看食品列表=2.新增食品=3.修改食品=4.刪除食品=5.返回一級菜單 =======");
System.out.println("請輸入你的選擇:");
menu = input.nextInt();
switch(menu) {
case 1:
foodView.showFoodList(businessId);
break;
case 2:
foodView.saveFood(businessId);
break;
case 3:
foodView.updateFood(businessId);
break;
case 4:
foodView.removeFood(businessId);
break;
case 5:
break;
default:
System.out.println("沒有這個選項脚牍!\n");
break;
}
}
}
public static void main(String[] args) {
new ElmBusinessEntry().work();
}
}