基于 Mongodb 实现商品管理系统之向数据库中添加商品编写讲解|学习笔记

简介: 快速学习基于 Mongodb 实现商品管理系统之向数据库中添加商品编写讲解

开发者学堂课程【场景实践 - 基于MongoDB实现商品管理系统基于Mongodb实现商品管理系统之向数据库中添加商品编写讲解】学习笔记与课程紧密联系,让用户快速学习知识

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


基于 Mongodb 实现商品管理系统之向数据库中添加商品编写讲解

 

一、添加商品

添加商品的流程:

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

输入以下命令进行操作:

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

C

请输入增加商品的编号

10

请输入增加商品的名称

Benchi

请输入增加商品的名称

918187

添加商品成功

 

添加商品的业务流程图:

image.png

在添加商品之前,要对 Mongodb 的工具类进行升级,下面是升级版工具类:

public class MongoDeUtils {

//1.使用 connection 用来保存 Mongo 的数据库连接对象 static Mongo connection = null;

//2.使用 d b 接收具体的数据库连接 static DB db - null;

//3.定义 coll 接收数据表的连接

static DBcollection coll = null;

public static De getDB (String dbName) throws Exception {

//创建一个 Mongo 的数据库连接对象

connection = new Mongo("127.0.0.1: 27017");

//通过获取数据库的连接对象connection根据传递的数据库名 dbName 来连接具体的数据库

db = connection.getDB( dbName);

//将具体的数据库连接返回给调用者

return db;

}

public static DBcollection getlollection(String dbName,String collName) throwsException {

//创建一个 Mongo 的数据库连接对象

connection = new Mongo("127.0.0.1:27017”);

//通过获取数据库的连接对象 connection 根据传递的数据库名 dbName 来连接具体的数据库

db = connection.getDB( dbName) ;

coll = db.getcollection( collName);

//将具体的数据库连接返回给调用者

return coll;

}

}

1.web 层入口

//使用多分支进行选择

switch( inputChoice.toUpperCase())

case "C":

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

//调用方法向数据库中添加商品

addproduct();

break;

case "D":

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

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

注:根据上文流程,下面要创建录入对象以及提示和获取

Scanner sc = new Scanner(System.in);

Try {

//提示

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

//获取

String pidStr = sc.nextLine();

int pid = Integer.parseInt(pidStr);

//提示

System.out.println(请输入商品名称:");

//获取

String panme = sc.nextLine();

//提示

System.out.println(请输入商品价格:");

//获取

String priceStr = sc.nextLine();

注:发现数据库中的 price 类型是 int 类型,最开始设置的类型的 double,现在要将product.java 中的double都改为 int,之后进行强转。

Int price=Integer.parseInt(priceStr)

注:下面要将添加数据传到业务层,将添加封装到JavaBean中。

//创建 Product 类对象

Product p = new Product();

//封装数据

p.setPid(pid);

p.setPname(pname);

p.setPrice(price);

//创建业务层对象

ProductService productService = new ProductService();

//调用方法向业务层传递数据

productService.addProduct(p);

System.out.println(:“商品添加成功”);

}catch (Exception e) {

System.out.println("添加商品失败"+e);

}

}

//根据商品编号查询商品信息

public static void findProductsByPid() {

//创建键盘录入的对象

scanner sc = new Scanner(System.in);

//提示

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

//获取

String pidStr = sc.nextLine();

//强转

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("对不起,没有您要查询的商品信息");

}

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

}

//添加商品

public void addProduct(Product p) throws Exception {

dao.addProduct(p);

}

} 

3.创建 web 层

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添加BasicDBObject

basicDBObject.put( "pid", pid);

DBCursor cur= coll.find(basicDBObject);

return cur;

}

//添加商品

public void addProduct(Product p) throws Exception {

注:有异常,要对service层和dao层进行声明(throws),对web进行try/catch Block操作。

//获取集合连接

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

}

}

image.png

数据库中的数据如上图所示,pid最大是9,下面尝试添加10:

运行结果:

添加商品的流程:

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

输入以下命令进行操作:

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

C

请输入增加商品的编号

10

请输入增加商品的名称

Audi

请输入增加商品的名称

898988

商品添加成功

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

输入以下命令进行操作:

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

10         audi       898988

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

输入以下命令进行操作:

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

发现添加的商品信息已经添加成功,之后刷新数据库,重新查询数据:image.png

相关文章
|
6月前
|
NoSQL MongoDB 数据库
数据库数据恢复—MongoDB数据库数据恢复案例
MongoDB数据库数据恢复环境: 一台操作系统为Windows Server的虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 工作人员在MongoDB服务仍然开启的情况下将MongoDB数据库文件拷贝到其他分区,数据复制完成后将MongoDB数据库原先所在的分区进行了格式化操作。 结果发现拷贝过去的数据无法使用。管理员又将数据拷贝回原始分区,MongoDB服务仍然无法使用,报错“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”
|
6月前
|
缓存 NoSQL Linux
在CentOS 7系统中彻底移除MongoDB数据库的步骤
以上步骤完成后,MongoDB应该会从您的CentOS 7系统中被彻底移除。在执行上述操作前,请确保已经备份好所有重要数据以防丢失。这些步骤操作需要一些基本的Linux系统管理知识,若您对某一步骤不是非常清楚,请先进行必要的学习或咨询专业人士。在执行系统级操作时,推荐在实施前创建系统快照或备份,以便在出现问题时能够恢复到原先的状态。
568 79
|
9月前
|
前端开发 数据库
会议室管理系统源码(含数据库脚本)
会议室管理系统源码(含数据库脚本)
186 0
|
4月前
|
安全 关系型数据库 数据管理
阿里云数据库:构建高性能与安全的数据管理系统
阿里云数据库提供RDS、PolarDB、Tair等核心产品,具备高可用、弹性扩展、安全合规及智能运维等技术优势,广泛应用于电商、游戏、金融等行业,助力企业高效管理数据,提升业务连续性与竞争力。
|
6月前
|
存储 NoSQL MongoDB
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
319 8
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
|
5月前
|
运维 NoSQL 容灾
告别运维噩梦:手把手教你将自建 MongoDB 平滑迁移至云数据库
程序员为何逃离自建MongoDB?扩容困难、运维复杂、高可用性差成痛点。阿里云MongoDB提供分钟级扩容、自动诊断与高可用保障,助力企业高效运维、降本增效,实现数据库“无感运维”。
|
6月前
|
SQL 监控 安全
数据库安全审计系统
Next-DBM数据库审计系统助力企业解决数据安全难题,提供统一身份管理、全方位监控、智能风险识别、完整审计追溯及精细化权限管控,有效防范数据泄露与内部威胁,保障企业核心资产安全,满足合规要求,提升运维效率。
|
9月前
|
Java 数据库
jsp CRM客户管理系统(含数据库脚本以及文档)
jsp CRM客户管理系统(含数据库脚本以及文档)
207 10
|
9月前
|
NoSQL MongoDB 数据库
数据库数据恢复——MongoDB数据库服务无法启动的数据恢复案例
MongoDB数据库数据恢复环境: 一台Windows Server操作系统虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 管理员在未关闭MongoDB服务的情况下拷贝数据库文件。将MongoDB数据库文件拷贝到其他分区后,对MongoDB数据库所在原分区进行了格式化操作。格式化完成后将数据库文件拷回原分区,并重新启动MongoDB服务。发现服务无法启动并报错。
|
11月前
|
存储 NoSQL MongoDB
数据库数据恢复—MongoDB数据库迁移过程中丢失文件的数据恢复案例
某单位一台MongoDB数据库由于业务需求进行了数据迁移,数据库迁移后提示:“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”

推荐镜像

更多