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

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

开发者学堂课程【场景实践 - 基于MongoDB实现商品管理系统:基于Mongodb实现商品管理系统之根据商品编号查询商品信息编写讲解】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/728/detail/13006


基于 Mongodb 实现商品管理系统之根据商品编号查询商品信息编写讲解

 

通过 id 查询商品信息

------欢迎来到商品管理系统------

输入以下命令进行操作:

C:添加商品D:根据编号删除商品DA:删除所有商品Ⅰ;根据商品编号查询商品信息FA:查询所有商品信息Q:退出

I

请输入要查询的商品编号:

2

商品编号  商品名称  商品价格

2.0         Haier     3000.0

根据商品id查询商品的业务流程:输入要查询的商品编号即可查询

1.编写程序,打开 explorer 进入 web 层:

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 findProductsByPid() {

//创建键盘录入的对象

scanner sc = new Scanner(System.in);

注:根据上文,输入i之后会提示“请输入要查询的商品编号”,故要编写提示信息。

//提示

System.out.println ("请输入要查询的商品编号:");

//获取

String pidStr = sc.nextLine();

注:products 是 pid 类型,获取是 string 类型,故要将 string 类型变为 pid 类型。

//强转

int pid = Integer.parseInt(pidStr);

//创建业务层对象

ProductService productService = new ProductService();

//调用方法根据录入商品 pid 到数据库中查询商品信息

DBCursor cur=productService.findProductsByPid(pid);

//根据游标 cur 判断是否存在录入的 pid 对应的商品

if(cur.size() != 0)

{

//说明有该商品

System.out.print1n("商品编号\t商品名称\t商品价格");

//遍历右边

while(cur.hasNext())

{

//说明有数据

//取出商品

DBObject product = cur.next();

//输出system.out.println(product.get("pid")+"\t"+product.get("pname")+"\t"+product.get( "price")];

}

}else

{

System.out.println("对不起,没有您要查询的商品信息");

}

注:因dao层便携式的异常,进行try/catch Block操作。

}catch Exception e){

System.out.println("根据商品编号查询商品失败"+e);

}

}

//查询所有商品信息

public static void findAllProducts() {

//创建业务层对象

ProductService productservice = new ProductService();

//调用方法获取所有商品信息

DBCursor cur=productService.findA1lProducts();

//根据cur判断数据库中是否含有数据

if(cur.size() == 0)

{

//说明没有数据

System.out.println ("对不起,数据库中没有您要查询的数据");

}else

{

//说明有数据 获取 cur 游标中的数据

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));

}

}

}

} 

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);

}

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{

注:有异常,要对public DBCursor findProductsByPid(int pid)、service层进行声明(throws),对web进行try/catch Block操作。

//获取数据库连接

DB db = MongoDBUtils.getDB( "itcast");

//获取数据库中表(集合)连接

DBCollection coll=db.getCollection(“products”);

//创建对象——目的是将pid传到数据库底层

DBObject属于BasicDBObject类接口

//BasicDBObject底层是HashMap   类似于{“pid”=pid}结构

DBObject basicDBObject = new BasicDBObject();

//将pid添加BasicDBObject

basicDBObject.put( "pid", pid);

注:put的功能:如果添加的key存在是修改,不存在是添加。

//basicDBObject作为参数到数据库中查询商品

DBCursor cur= coll.find(basicDBObject);

注:coll.find(basicDBObject) 访问出来是个游标 cur,之后将游标返回给前台。

return cur;

}

流程:首先是连接数据库,获取数据库中的集合,之后创建一个类basicDBObject,然后将pid放在底层HashMap里,通过coll.find(basicDBObject)传输数据,底层根据传过去的key进行查询,查询到的信息放入游标中,之后返回到前台service层中,service层再返回到web层中,web层输出。

执行结果:

------欢迎来到商品管理系统------

输入以下命令进行操作:

C:添加商品D:根据编号删除商品DA:删除所有商品Ⅰ;根据商品编号查询商品信息FA:查询所有商品信息Q:退出

I

请输入要查询的商品编号:

2

商品编号  商品名称  商品价格

2.0         Haier     3000.0

------欢迎来到商品管理系统------

输入以下命令进行操作:

C:添加商品D:根据编号删除商品DA:删除所有商品Ⅰ;根据商品编号查询商品信息FA:查询所有商品信息Q:退出

根据MongoVUE中table view,商品编号为2的商品名称为haier。

输入不存在的商品编号:

I

请输入要查询的商品编号:

78

对不起,没有您要查询的商品信息

------欢迎来到商品管理系统------

输入以下命令进行操作:

C:添加商品D:根据编号删除商品DA:删除所有商品Ⅰ;根据商品编号查询商品信息FA:查询所有商品信息Q:退出

相关实践学习
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
相关文章
|
2月前
|
存储 NoSQL MongoDB
掌握MongoDB索引优化策略:提升查询效率的关键
在数据库性能调优中,索引是提升查询效率的利器。本文将带你深入了解MongoDB索引的内部工作原理,探讨索引对查询性能的影响,并通过实际案例指导如何针对不同的查询模式建立有效的索引。不仅将涵盖单一字段索引,还会探讨复合索引的使用,以及如何通过分析查询模式和执行计划来优化索引,最终实现查询性能的最大化。
|
2天前
|
SQL NoSQL Java
Java使用sql查询mongodb
通过使用 MongoDB Connector for BI 和 JDBC,开发者可以在 Java 中使用 SQL 语法查询 MongoDB 数据库。这种方法对于熟悉 SQL 的团队非常有帮助,能够快速实现对 MongoDB 数据的操作。同时,也需要注意到这种方法的性能和功能限制,根据具体应用场景进行选择和优化。
25 9
|
2月前
|
存储 NoSQL MongoDB
MongoDB 查询分析
10月更文挑战第21天
22 1
|
2月前
|
NoSQL MongoDB 索引
MongoDB 覆盖索引查询
10月更文挑战第21天
35 1
|
2月前
|
SQL NoSQL MongoDB
MongoDB 查询文档
10月更文挑战第15天
36 1
|
2月前
|
运维 NoSQL BI
简道云搭载阿里云MongoDB数据库,帮助数以万计企业重构业务系统
通过与MongoDB和阿里云团队的合作,让简道云少走了弯路,保障了线上服务的长期稳定运行,提高了吞吐效率,并相应降低了线上运行成本
|
2月前
|
人工智能 NoSQL 机器人
MongoDB Atlas与YoMio.AI近乎完美适配:推理更快速、查询更灵活、场景更丰富
随着MongoDB的新发布和革新,YoMio.AI的“闪电式发展”值得期待。
|
3月前
|
SQL NoSQL JavaScript
04 MongoDB各种查询操作 以及聚合操作总结
文章全面总结了MongoDB中的查询操作及聚合操作,包括基本查询、条件筛选、排序以及聚合管道的使用方法和实例。
103 0
|
6天前
|
存储 JSON NoSQL
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
33 15
|
14天前
|
存储 NoSQL 关系型数据库
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
我们的风控系统引入阿里云数据库MongoDB版后,解决了特征类字段灵活加减的问题,大大提高了开发效率,极大的提升了业务用户体验,获得了非常好的效果
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板