基于Mongodb实现商品管理系统之根据商品编号删除商品编写讲解|学习笔记

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 快速学习基于Mongodb实现商品管理系统之根据商品编号删除商品编写讲解

开发者学堂课程【场景实践 - 基于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 删除商品的具体流程如下图所示:

说明:要想删除商品,必须先根据用户输入的商品编号去数据库中查询该商品信息,如果该商品编号不存在,则提示商品不存在,然后再重新选择操作。

如果商品编号存在,则查询出商品信息,然后提示确定删除吗,因为有可能会误删,所以以防万一,这里需要作出提示。最后,如果删除成功,则提示删除成功。

image.png

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的商品信息删除成功:

image.png

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
11月前
|
前端开发 NoSQL MongoDB
一款基于Nodejs+express+mongodb的内容管理系统
一款基于Nodejs+express+mongodb的内容管理系统
110 0
|
5月前
|
存储 NoSQL Linux
MongoDB【部署 02】mongodb使用配置文件启动、添加为系统服务及自启动(一个报错:[13436][NotMasterOrSecondary])
MongoDB【部署 02】mongodb使用配置文件启动、添加为系统服务及自启动(一个报错:[13436][NotMasterOrSecondary])
605 0
|
3月前
|
JSON NoSQL MongoDB
mongodb 系统命令总结
mongodb 系统命令总结
34 0
|
4月前
|
NoSQL Unix MongoDB
MongoDB-系统时钟跳变引发的风波
MongoDB-系统时钟跳变引发的风波
|
4月前
|
存储 监控 NoSQL
MongoDB 副本集:构建可靠的数据备份与高可用性系统
MongoDB 副本集:构建可靠的数据备份与高可用性系统
|
5月前
|
人工智能 NoSQL MongoDB
|
5月前
|
运维 NoSQL 关系型数据库
MongoDB助力西门子数字化工厂构建下一代制造执行系统
数据库的高可用性是保障工厂不停工、连续生产的关键所在
2227 3
MongoDB助力西门子数字化工厂构建下一代制造执行系统
|
5月前
|
存储 NoSQL MongoDB
MongoDB【部署 04】Windows系统实现MongoDB多磁盘存储
MongoDB【部署 04】Windows系统实现MongoDB多磁盘存储
302 0
|
存储 NoSQL Ubuntu
linux系统中MongoDB数据库安装及分片集群搭建
史上最全的mongodb分片集群搭建,从介绍安装到集群搭建授权,你再也找不到比他更加详细的资料了,未经允许禁止转载!!
1026 4
|
NoSQL 前端开发 JavaScript
MongoDB从入门到实战之.NET Core使用MongoDB开发ToDoList系统(8)-Ant Design Blazor前端框架搭建
MongoDB从入门到实战之.NET Core使用MongoDB开发ToDoList系统(8)-Ant Design Blazor前端框架搭建
163 0
下一篇
无影云桌面