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

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: 快速学习基于 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
相关文章
|
5月前
|
前端开发 NoSQL MongoDB
一款基于Nodejs+express+mongodb的内容管理系统
一款基于Nodejs+express+mongodb的内容管理系统
68 0
|
7月前
|
JSON NoSQL MongoDB
mongodb基本操作,增删改查,查询,索引,权限机制
mongodb基本操作,增删改查,查询,索引,权限机制
|
6月前
|
NoSQL MongoDB 索引
开心档-软件开发入门之MongoDB 覆盖索引查询
开心档-软件开发入门之MongoDB 覆盖索引查询
45 0
|
3月前
|
NoSQL 关系型数据库 MySQL
深入了解 Python MongoDB 查询:find 和 find_one 方法完全解析
在 MongoDB 中,我们使用 find() 和 find_one() 方法来在集合中查找数据,就像在MySQL数据库中使用 SELECT 语句来在表中查找数据一样
65 1
|
11天前
|
JSON NoSQL MongoDB
mongodb导出聚合查询的数据
mongodb导出聚合查询的数据
|
1月前
|
人工智能 NoSQL MongoDB
|
3月前
|
存储 NoSQL 安全
go 连接mongodb执行查询的代码
在Go语言中,你可以使用官方的MongoDB驱动程序 `"go.mongodb.org/mongo-driver/mongo"` 来连接MongoDB并执行查询。以下是一个简单的示例代码,演示如何连接MongoDB并执行查询: 首先,确保你已经安装了MongoDB驱动程序: ```bash go get go.mongodb.org/mongo-driver/mongo ``` 然后,可以使用以下示例代码: ```go package main import ( "context" "fmt" "log" "time" "go.mongodb.org/mongo-driv
|
4月前
|
缓存 NoSQL MongoDB
MongoDB数据库查询性能提高40倍?
MongoDB数据库查询性能提高40倍?
95 0
|
4月前
|
NoSQL JavaScript 前端开发
MongoDB【CRUD练习-条件查询-文档关系】
MongoDB【CRUD练习-条件查询-文档关系】
|
5月前
|
JSON NoSQL MongoDB
MongoDB数据库查询性能提高40倍
MongoDB数据库查询性能提高40倍
MongoDB数据库查询性能提高40倍