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

简介: 快速学习基于 Mongodb 实现商品管理系统之查询所有商品信息编写讲解

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

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


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

 

一、查询所有商品信息

查询所有商品信息的业务流程:

在控制台输入FA,就会将数据库表中的所有商品信息显示在控制台。

1.Web 层操作:

public class Productweb {

public static void main(String[] args) {

//创建键盘录入的对象

Scanner sc= new Scanner(System.in);

//为了让程序能够回到这里,我们使用循环

while(true)

//提示

System.out.println("--------欢迎来到商品管理系统--------");

System.out.println("输入以下命令进行操作:");

System.out.println("C:添加商品D:根据编号删除商品DA:删除所有商品Ⅰ:根据商品编号查询商品信息FA:查询所有商品信息Q:退出");

//获取输入的信息

string inputChoice = sc.nextLine();

//使用多分支进行选择

switch( inputChoice.toUpperCase())

case "C":

System.out.println("添加商品");

break;

case "D":

System.out.println("根据编号删除商品");

break;

case "DA":

System.out.println("删除所有商品");

break;

case "I":

System.out.println("根据商品编号查询商品信息");

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

//创建业务层对象

ProductService productservice = new ProductService();

注:在数据库中没有 productservice 类,要创建在 service 层。

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

DBCursor cur=productService.findA1lProducts();

注:返回值是多条数据,多条数据用 Mongodb 中提供的 API—DBCursor

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

if(cur.size() == 0)

{

//说明没有数据

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

}else

{

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

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

while(cur.hasNext())

注:cur.hasNext() 是用来判断是否还有数据,有数据返回TRUE,无数据返回 FALSE

{

//获取商品获取每一行

DBobject product= cur.next();

注:product 表示一行数据,DBobject 类型里的数据,如{“name”=“BMW”}

//输出

System.out.println(product.get(“pid”+“\t” +product.get(“pname”+“\t”+product.get(“price”));

}

}

}

}

至此,web层写完,之后创建service层 

2.编写service层

package com.itheima.sh.service;

import com.itheima. sh.dao.ProductDao;

import com.mongodb.DBCursor;

public class productservice {

//查询所有商品信息

public DBCursor findAllproducts() {

//创建dao层的对象

ProductDao dao=new product Dao();

Return dao.findAllproducts()

}

}

注:findAllproducts 是属于 dao 层的,接下来要创建方法,方法是用来查询所有商品信息。

之后完成 dao 层的创建:

3.编写 dao 层

package com.itheima. sh.dao;

import com.itheima.sh.utils.MongoDBUtils;

import com.mongodb.DBCursor;

public class ProductDao {

//查询所有商品信息

public DBCursor findAllproducts() {

//根据工具类中的方法获取数据库连接

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

return null;

}

}

注:因为db有异常,所以要进行声明:

public DBCursor findAllproducts() throws Exception{

service 层也要改变为:

package com.itheima.sh.service;

import com.itheima. sh.dao.ProductDao;

import com.mongodb.DBCursor;

public class productservice {

//查询所有商品信息

public DBCursor findAllproducts() throws Exception {

//创建 dao 层的对象

ProductDao dao=new product Dao();

Return dao.findAllproducts()

}

}

对 Web 层 DBCursor cur 后的信息进行 try/catch Block 操作:

ProductService productservice = new ProductService();

try{

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

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

}

}

} catch (Exception e) {

System.out.println(查询所有商品失败"+e);

}

}

接下来继续编写 dao 层

package com.itheima. sh.dao;

import com.itheima.sh.utils.MongoDBUtils;

import com.mongodb.DBCursor;

public class ProductDao {

//查询所有商品信息

public DBCursor findAllproducts() {

//根据工具类中的方法获取数据库连接

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

//根据数据库连接获取对应的集合

DBCollection coll= db.getcoliection("products");

return null;

}

}

DB db=MongoDBUtils.getDB("itcast");是获取具体的数据库。而 itcast 数据库下有三个集合,我们要获取的是 products,products 的类型属于DBcollection,通过coll可以获取对应信息。

public class ProductDao {

//查询所有商品信息

public DBCursor findAllproducts() {

//根据工具类中的方法获取数据库连接

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

//根据数据库连接获取对应的集合

DBCollection coll= db.getcoliection("products");

//使用 coll 对象调用万法获取数据

coll.find()

Return null;

}

}

Find 是放在游标里的,所以:

public class ProductDao {

//查询所有商品信息

public DBCursor findAllproducts() {

//根据工具类中的方法获取数据库连接

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

//根据数据库连接获取对应的集合

DBCollection coll= db.getcoliection("products");

//使用coll对象调用方法获取数据

DBCursor cur=coll.find()

Return cur;

}

}

Dao层游标返回,之后就给service层,service层又把游标返回到web层,web层拿到之后判断,有数据就取出;没有数据打印“对不起,数据库中没有您要查询的数据”。

接下来进行运行:

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

输入以下命令进行操作:

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:退出

相关文章
|
9月前
|
NoSQL 测试技术 MongoDB
微服务——MongoDB实战演练——根据上级ID查询文章评论的分页列表
本节介绍如何根据上级ID查询文章评论的分页列表,主要包括以下内容:(1)在CommentRepository中新增`findByParentid`方法,用于按父ID查询子评论分页列表;(2)在CommentService中新增`findCommentListPageByParentid`方法,封装分页逻辑;(3)提供JUnit测试用例,验证功能正确性;(4)使用Compass插入测试数据并执行测试,展示查询结果。通过这些步骤,实现对评论的高效分页查询。
172 0
|
4月前
|
存储 JSON NoSQL
查询 MongoDB--SPL 轻量级多源混算实践 4
SPL 支持多种数据源连接,包括 MongoDB 等 NoSQL 数据库。通过外部库形式提供驱动,灵活扩展,可实现实时数据计算与混合分析。
|
11月前
|
SQL NoSQL Java
Java使用sql查询mongodb
通过MongoDB Atlas Data Lake或Apache Drill,可以在Java中使用SQL语法查询MongoDB数据。这两种方法都需要适当的配置和依赖库的支持。希望本文提供的示例和说明能够帮助开发者实现这一目标。
466 17
|
9月前
|
存储 NoSQL Linux
微服务2——MongoDB单机部署4——Linux系统中的安装启动和连接
本节主要介绍了在Linux系统中安装、启动和连接MongoDB的详细步骤。首先从官网下载MongoDB压缩包并解压至指定目录,接着创建数据和日志存储目录,并配置`mongod.conf`文件以设定日志路径、数据存储路径及绑定IP等参数。之后通过配置文件启动MongoDB服务,并使用`mongo`命令或Compass工具进行连接测试。此外,还提供了防火墙配置建议以及服务停止的两种方法:快速关闭(直接杀死进程)和标准关闭(通过客户端命令安全关闭)。最后补充了数据损坏时的修复操作,确保数据库的稳定运行。
644 0
|
12月前
|
SQL NoSQL Java
Java使用sql查询mongodb
通过使用 MongoDB Connector for BI 和 JDBC,开发者可以在 Java 中使用 SQL 语法查询 MongoDB 数据库。这种方法对于熟悉 SQL 的团队非常有帮助,能够快速实现对 MongoDB 数据的操作。同时,也需要注意到这种方法的性能和功能限制,根据具体应用场景进行选择和优化。
478 9
|
存储 NoSQL MongoDB
MongoDB 查询分析
10月更文挑战第21天
125 1
|
NoSQL MongoDB 索引
MongoDB 覆盖索引查询
10月更文挑战第21天
126 1
|
SQL NoSQL MongoDB
MongoDB 查询文档
10月更文挑战第15天
452 1
|
5月前
|
NoSQL MongoDB 数据库
数据库数据恢复—MongoDB数据库数据恢复案例
MongoDB数据库数据恢复环境: 一台操作系统为Windows Server的虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 工作人员在MongoDB服务仍然开启的情况下将MongoDB数据库文件拷贝到其他分区,数据复制完成后将MongoDB数据库原先所在的分区进行了格式化操作。 结果发现拷贝过去的数据无法使用。管理员又将数据拷贝回原始分区,MongoDB服务仍然无法使用,报错“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”
|
5月前
|
缓存 NoSQL Linux
在CentOS 7系统中彻底移除MongoDB数据库的步骤
以上步骤完成后,MongoDB应该会从您的CentOS 7系统中被彻底移除。在执行上述操作前,请确保已经备份好所有重要数据以防丢失。这些步骤操作需要一些基本的Linux系统管理知识,若您对某一步骤不是非常清楚,请先进行必要的学习或咨询专业人士。在执行系统级操作时,推荐在实施前创建系统快照或备份,以便在出现问题时能够恢复到原先的状态。
470 79

推荐镜像

更多