开发者学堂课程【场景实践 - 基于MongoDB实现商品管理系统:基于Mongodb实现商品管理系统之根据商品编号删除商品编写讲解】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/728/detail/13008
基于Mongodb实现商品管理系统之根据商品编号删除商品编写讲解
一、根据商品id删除商品信息
根据商品id删除商品的流程如下所示:
------欢迎来到商品管理系统------
输入以下命令进行操作:
C:添加商品D:根据编号删除商品DA:删除所有商品Ⅰ;根据商品编号查询商品信息FA:查询所有商品信息Q:退出
D
请输入删除商品的编号:
10
商品编号 商品名称 商品价格
10 benchi 918187
确认要删除吗?按y!
y
删除添加商品成功
------欢迎来到商品管理系统------
输入以下命令进行操作:
C:添加商品D:根据编号删除商品DA:删除所有商品Ⅰ;根据商品编号查询商品信息FA:查询所有商品信息Q:退出
D
请输入删除商品的编号:
89
对不起,没有找到要删除的商品
根据商品 id 删除商品的具体流程如下图所示:
说明:要想删除商品,必须先根据用户输入的商品编号去数据库中查询该商品信息,如果该商品编号不存在,则提示商品不存在,然后再重新选择操作。
如果商品编号存在,则查询出商品信息,然后提示确定删除吗,因为有可能会误删,所以以防万一,这里需要作出提示。最后,如果删除成功,则提示删除成功。
1.web 层入口
//使用多分支进行选择
switch( inputChoice.toUpperCase())
case "C":
System.out.println
("添加商品");
//调用方法向数据库中添加商品
addproduct();
break;
case "D":
System.out.println
("根据编号删除商品");
//根据编号删除商品
deleteProductByPid();
break;
case "DA":
System.out.println
("删除所有商品");
break;
case "I":
System.out.println
("根据商品编号查询商品信息");
findProductsByPid();
break;
case "FA":
System.out.println
("查询所有商品信息");
//调用方法查询所有商品信息
findALLProducts();
break;
case "Q":
System.out.println
("退出");
break;
default:
System.out.println
("退出");
System.out.println
("谢谢光临");
//终止虚拟机
System.exit(0)
break;
}
}
}
//根据编号删除商品
public static void deleteProductByPid() {
//创建键盘录入的对象
scanner sC = new Scanner(System.in);
try {
//提示
System.out. println
("请输入要删除的商品编号:");
//获取
int pid = Integer.parseInt(sc.nextLine());
//先到数据库中查询商品是否存在
ProductService productService = new productService();
//查询
DBCursor cur = productService.findProductsByPid(pid);
//判断
If (cur.size()==0)
{
System.out.println
(“对不起,没有您要删除的商品”)
Return;
}
//如果程序执行到这里,说明数据库中存在该商品
//显示
System.out.println(“商品编号\t商品名称\t商品价格”);
While(cur.hasNext())
{
//取出商品
DBObject product=cur.next()
//输出System.out.println(product.get("pid")+"\t"+product.get("pname")+"\t"+product.get("price"));
}
//提示是否确认删除
System.out.println
("这么好的商品,您确定要删除吗?按y" );
//获取
String yes = sc.nextLine();
//判断
if("y".equals(yes))
{
//说明确定删除
productService.deleteProductByPid(pid);
System.out.println
(删除商品成功);
}else
{
//说明取消删除
System.out.println
("取消删除");
}
}catch (Exception e) {
System.out.print1n
("根据商品编号查询商品失败"+e);
}
输入D,执行deleteProductByPid(),之后键盘录入“请输入要删除的商品编号”,根据编号进行查询,查询放入游标cur中,如果游标为空,说明没有要删除的商品;如果有内容,则提示是否确认删除。如果确定删除,显示删除商品成功,反之,取消删除。
2.创建 service 层
package com.itheima.sh.service;
import com.itheima. sh.dao.ProductDao;
import com.mongodb.DBCursor;
public class productservice {
//创建dao层的对象
ProductDao dao=new productDao();
//查询所有商品信息
public DBCursor findAllProducts( ) throws Exception {
Return dao.findAllproducts()
}
//根据商品编号查询商品信息
public DBCursor findProductsByPid(int pid) throws Exception{
return dao.findProductsByPid(pid);
}
//添加商品
public void addProduct(Product p)
throws Exception
{
dao.addProduct(p);
}
//根据编号删除商品
public static void deleteProductByPid(int pid) throws Exception{
dao. deleteProductByPid(pid);
}
3.创建 dao 层
package com.itheima.sh.dao;
import com.itheima.sh.utils.MongoDBUtils;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
public class ProductDao {
//查询所有商品信息
public DBCursor findAllProducts( ) throws Exception {
//根据工具类中的方法获取数据库连接
DB db = MongoDBUtils.getDB("itcast");
//根据数据库连接获取对应的集合
DBCollection coll = db.getCollection("products");
//使用 coll 对象调用方法获取数据
DBCursor cur = coll.find();
return cur;
}
//根据商品编号查询商品信息
public DBCursor findProductsByPid(int pid) throws Exception{
DB db = MongoDBUtils.getDB( "itcast");
//获取数据库中表(集合)连接
DBCollection coll=db.getCollection(“products”);
//创建对象——目的是将pid传到数据库底层
DBObject属于BasicDBObject类副接口
//BasicDBObject底层是HashMap 类似于{“pid”=pid}结构
DBObject basicDBObject = new BasicDBObject();
//将 pid 添加B asicDBObject
basicDBObject.put( "pid", pid);
DBCursor cur= coll.find(basicDBObject);
return cur;
}
//添加商品
public void addProduct(Product p)
throws Exception
{
//获取集合连接
DBCollection coll =MongoDBUtils.getCollection("itcast","products");
//创建对象
DBObject db=new BasicDB0bject();
//添加数据
db.put("pid", p.getPid());
db.put("pname", p.getPname());
db.put("price", p.getPrice());
//使用集合连接将插入到数据库中
coll.insert(db);
}
//根据编号删除商品
public static void deleteProductByPid(int pid) {
//获取集合连接
DBCollection coll =MongoDBUtils.getCollection("itcast","products");
注:有异常,对public static void deleteProductByPid(int pid) {
和service层进行声明。
//创建对象
DBObject dbs=new BasicDB0bject();
//添加数据
dbs.put("pid", pid);
//使用集合连接对象coll调用方法进行删除
coll.remove(dbs);
}
}
进行运行操作,删除编号10:
------欢迎来到商品管理系统------
输入以下命令进行操作:
C:添加商品D:根据编号删除商品DA:删除所有商品Ⅰ;根据商品编号查询商品信息FA:查询所有商品信息Q:退出
d
请输入删除商品的编号:
78
对不起,没有您要删除的商品
------欢迎来到商品管理系统------
输入以下命令进行操作:
C:添加商品D:根据编号删除商品DA:删除所有商品Ⅰ;根据商品编号查询商品信息FA:查询所有商品信息Q:退出
d
请输入删除商品的编号:
10
商品编号 商品名称 商品价格
10 Audi 898988
这么好的商品,您确认要删除吗?按y
n
取消删除
------欢迎来到商品管理系统------
输入以下命令进行操作:
C:添加商品D:根据编号删除商品DA:删除所有商品Ⅰ;根据商品编号查询商品信息FA:查询所有商品信息Q:退出
刷新查询发现编号为10的商品信息还在。
------欢迎来到商品管理系统------
输入以下命令进行操作:
C:添加商品D:根据编号删除商品DA:删除所有商品Ⅰ;根据商品编号查询商品信息FA:查询所有商品信息Q:退出
d
请输入删除商品的编号:
10
商品编号 商品名称 商品价格
10 Audi 898988
这么好的商品,您确认要删除吗?按y
y
删除商品成功
------欢迎来到商品管理系统------
输入以下命令进行操作:
C:添加商品D:根据编号删除商品DA:删除所有商品Ⅰ;根据商品编号查询商品信息FA:查询所有商品信息Q:退出
fa
商品编号 商品名称 商品价格
1.0 lenovo 5000.0
2.0 Haier 3000.0
3.0 Thor 5000.o
4.0 Nike 800.0
5.0 Dior 2000.0
6.0 HERMES 2400.0
7.0 MK 4000.0
8.0 CHANEL 800.0
9.0 BMW 20000.0
------欢迎来到商品管理系统------
输入以下命令进行操作:
C:添加商品D:根据编号删除商品DA:删除所有商品Ⅰ;根据商品编号查询商品信息FA:查询所有商品信息Q:退出
刷新重新查询数据库,显示编号为10的商品信息删除成功: