Python3操作MongoDb7最新版创建文档及CRUD基本操作

news2024/11/17 13:58:14


Python3中类的高级语法及实战

Python3(基础|高级)语法实战(|多线程|多进程|线程池|进程池技术)|多线程安全问题解决方案

Python3数据科学包系列(一):数据分析实战

Python3数据科学包系列(二):数据分析实战

Python3数据科学包系列(三):数据分析实战




MongoDB 操作手册----文档在手,啥都有

Mongodb7最新版本文档CRUD

一: Python3连接Mongodb

查看Mongodb版本号:

[root@www bin]# ./mongod --version
db version v7.1.0-rc4
Build Info: {
    "version": "7.1.0-rc4",
    "gitVersion": "7bff196d50a937677dc800e0b08d5b9a6cc4d3b6",
    "openSSLVersion": "OpenSSL 1.0.1e-fips 11 Feb 2013",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "rhel70",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}
 


MongoDB是一个基于分布式文件存储的文档数据库,介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富、最像关系数据库的一种NoSQL数据库。MongoDB支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。MongoDB最大的特点是支持的查询语言非常强大,语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引
 

要使用PyMongo操作MongoDB,首先需要初始化数据库连接。

(1)如果 MongoDB 就运行在本地电脑上,而且也没有修改端口或者添加用户名和密码,则初始化MongoClient的实例不需要带参数,直接写为以下格式:


先安装pymongo模块 

PS D:\program_file_worker\python_source_work> pip3 install pymongo
..........................

..........................
Installing collected packages: dnspython, pymongo
Successfully installed dnspython-2.4.2 pymongo-4.5.0

二: 创建集合并插入一条数据

import datetime

import pymongo

'''
  Python3操作mongodb数据库:
  pymongo模块使用MongoClient对象来描述一个数据库客户端,创建对象所需要的参数主要有host和port
  场景的有三种:
  myClient = pymongo.MongoClient()
   myClient = pymongo.MongoClient('192.168.1.111',27017)
  myClient = pymongo.MongoClient("mongodb://192.168.1.111:27017/")
'''

myClient = pymongo.MongoClient('mongodb://192.168.1.111:27017/')

book = {
    'author': 'Mike',
    'text': 'My first book!',
    'tags': ['爬虫', 'python', 'C', 'java', '网络'],
    'date': datetime.datetime.utcnow()
}
# 创建集合
mydb = myClient['booksDB']
# 获得myDatabase数据集合
dblist = mydb.get_collection('booksDB')
print(dblist)
# 插入数据时,才会在服务器响应目录生成对应的booksDB集合
resultData = dblist.insert_one(book)
print(dblist.find_one())

查看服务器集合生成情况,进入服务数据目录如下,没有执行resultData = dblist.insert_one(book) 插入数据操作时,在该目录下没有生成‘booksDB’集合

执行该语句后,resultData = dblist.insert_one(book),在次参考该目录如下,表示已经生成了‘booksDatabase"数据库集合

D:\program_file_worker\anaconda\python.exe D:\program_file_worker\python_source_work\SSO\grammar\ClassGrammarMongodbExecutorInsert.py 
Collection(Database(MongoClient(host=['192.168.1.111:27017'], document_class=dict, tz_aware=False, connect=True), 'booksDB'), 'booksDB')
{'_id': ObjectId('651e4f9b9f93bbe01a987078'), 'author': 'Mike', 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 5, 5, 54, 35, 105000)}



三: 插入批量数据 

import datetime

import pymongo

'''
   Python操作Mongodb批量插入数据
'''
myClient = pymongo.MongoClient('mongodb://192.168.1.111:27017/')

books = [
    {
        'author': '老杨',
        'text': '我的乖乖!',
        'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'],
        'date': datetime.datetime.utcnow()},
    {
        'author': 'Mike',
        'text': 'My first book!',
        'tags': ['爬虫', 'python', 'C', 'java', '网络'],
        'date': datetime.datetime.utcnow()
    },
    {
        'author': 'John',
        'text': 'I love you !',
        'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'],
        'date': datetime.datetime.utcnow()
    },
    {
        'author': '老许',
        'text': '房地产大亨!',
        'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'],
        'date': datetime.datetime.utcnow()
    }]
# 访问booksDB数据库
booksDB = myClient.booksDB
print(booksDB)
# 创建集合
mydb = myClient['booksDB']
# 获得booksDB数据集合
dblist = mydb.get_collection('booksDB')
print(dblist)
# 插入数据时,才会在服务器响应目录生成对应的booksDB集合
resultData = dblist.insert_many(books)
# 根据条件检索
print(dblist.find_one({'author': '老许'}))
# 循环遍历
for book in dblist.find():
    print("book: ", book)

运行效果:


D:\program_file_worker\anaconda\python.exe D:\program_file_worker\python_source_work\SSO\grammar\ClassGrammarMongodbExecutorBatchInsert.py 
Database(MongoClient(host=['192.168.1.111:27017'], document_class=dict, tz_aware=False, connect=True), 'booksDB')
Collection(Database(MongoClient(host=['192.168.1.111:27017'], document_class=dict, tz_aware=False, connect=True), 'booksDB'), 'booksDB')
{'_id': ObjectId('651e59c092f7b5b0f2a78ab3'), 'author': '老许', 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 5, 6, 37, 52, 160000)}
book:  {'_id': ObjectId('651e525cdd9462dc3d985358'), 'author': 'Mike', 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 5, 6, 6, 20, 137000)}
book:  {'_id': ObjectId('651e59c092f7b5b0f2a78ab0'), 'author': '老杨', 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 5, 6, 37, 52, 160000)}
book:  {'_id': ObjectId('651e59c092f7b5b0f2a78ab1'), 'author': 'Mike', 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 5, 6, 37, 52, 160000)}
book:  {'_id': ObjectId('651e59c092f7b5b0f2a78ab2'), 'author': 'John', 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 5, 6, 37, 52, 160000)}
book:  {'_id': ObjectId('651e59c092f7b5b0f2a78ab3'), 'author': '老许', 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 5, 6, 37, 52, 160000)}
book:  {'_id': ObjectId('651e59d3aa91c719f3460dca'), 'author': '老杨', 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 5, 6, 38, 11, 522000)}
book:  {'_id': ObjectId('651e59d3aa91c719f3460dcb'), 'author': 'Mike', 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 5, 6, 38, 11, 522000)}
book:  {'_id': ObjectId('651e59d3aa91c719f3460dcc'), 'author': 'John', 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 5, 6, 38, 11, 522000)}
book:  {'_id': ObjectId('651e59d3aa91c719f3460dcd'), 'author': '老许', 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 5, 6, 38, 11, 522000)}
book:  {'_id': ObjectId('651e59dede3830cbceb9ce48'), 'author': '老杨', 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 5, 6, 38, 22, 935000)}
book:  {'_id': ObjectId('651e59dede3830cbceb9ce49'), 'author': 'Mike', 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 5, 6, 38, 22, 935000)}
book:  {'_id': ObjectId('651e59dede3830cbceb9ce4a'), 'author': 'John', 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 5, 6, 38, 22, 935000)}
book:  {'_id': ObjectId('651e59dede3830cbceb9ce4b'), 'author': '老许', 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 5, 6, 38, 22, 935000)}
book:  {'_id': ObjectId('651e5a0d75363b962608926c'), 'author': '老杨', 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 5, 6, 39, 9, 924000)}
book:  {'_id': ObjectId('651e5a0d75363b962608926d'), 'author': 'Mike', 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 5, 6, 39, 9, 924000)}
book:  {'_id': ObjectId('651e5a0d75363b962608926e'), 'author': 'John', 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 5, 6, 39, 9, 924000)}
book:  {'_id': ObjectId('651e5a0d75363b962608926f'), 'author': '老许', 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 5, 6, 39, 9, 924000)}
book:  {'_id': ObjectId('651e5a2ad2bb7283167996c2'), 'author': '老杨', 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 5, 6, 39, 38, 328000)}
book:  {'_id': ObjectId('651e5a2ad2bb7283167996c3'), 'author': 'Mike', 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 5, 6, 39, 38, 328000)}
book:  {'_id': ObjectId('651e5a2ad2bb7283167996c4'), 'author': 'John', 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 5, 6, 39, 38, 328000)}
book:  {'_id': ObjectId('651e5a2ad2bb7283167996c5'), 'author': '老许', 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 5, 6, 39, 38, 328000)}
book:  {'_id': ObjectId('651e5a54efa01a17dd94c4cd'), 'author': '老杨', 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 5, 6, 40, 20, 48000)}
book:  {'_id': ObjectId('651e5a54efa01a17dd94c4ce'), 'author': 'Mike', 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 5, 6, 40, 20, 48000)}
book:  {'_id': ObjectId('651e5a54efa01a17dd94c4cf'), 'author': 'John', 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 5, 6, 40, 20, 48000)}
book:  {'_id': ObjectId('651e5a54efa01a17dd94c4d0'), 'author': '老许', 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 5, 6, 40, 20, 48000)}
book:  {'_id': ObjectId('651e5a6f1bd3c8469e495fb1'), 'author': '老杨', 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 5, 6, 40, 47, 973000)}
book:  {'_id': ObjectId('651e5a6f1bd3c8469e495fb2'), 'author': 'Mike', 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 5, 6, 40, 47, 973000)}
book:  {'_id': ObjectId('651e5a6f1bd3c8469e495fb3'), 'author': 'John', 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 5, 6, 40, 47, 973000)}
book:  {'_id': ObjectId('651e5a6f1bd3c8469e495fb4'), 'author': '老许', 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 5, 6, 40, 47, 973000)}
book:  {'_id': ObjectId('651e5a83a71ca93c05006a0d'), 'author': '老杨', 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 5, 6, 41, 7, 691000)}
book:  {'_id': ObjectId('651e5a83a71ca93c05006a0e'), 'author': 'Mike', 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 5, 6, 41, 7, 691000)}
book:  {'_id': ObjectId('651e5a83a71ca93c05006a0f'), 'author': 'John', 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 5, 6, 41, 7, 691000)}
book:  {'_id': ObjectId('651e5a83a71ca93c05006a10'), 'author': '老许', 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 5, 6, 41, 7, 691000)}
book:  {'_id': ObjectId('651e5af3b81b4aebc4879a12'), 'author': '老杨', 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 5, 6, 42, 59, 955000)}
book:  {'_id': ObjectId('651e5af3b81b4aebc4879a13'), 'author': 'Mike', 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 5, 6, 42, 59, 955000)}
book:  {'_id': ObjectId('651e5af3b81b4aebc4879a14'), 'author': 'John', 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 5, 6, 42, 59, 955000)}
book:  {'_id': ObjectId('651e5af3b81b4aebc4879a15'), 'author': '老许', 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 5, 6, 42, 59, 955000)}

Process finished with exit code 0
 

后续补充完整.........忙着去耍帅..............


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1063260.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Zookeeper经典应用场景实战(一)

文章目录 1、Zookeeper Java客户端实战1.1、 Zookeeper 原生Java客户端使用1.2、 Curator开源客户端使用 2、 Zookeeper在分布式命名服务中的实战2.1、 分布式API目录2.2、 分布式节点的命名2.3、 分布式的ID生成器 3、Zookeeper实现分布式队列3.1、 设计思路3.2、 使用Apache …

电脑桌面黑屏,但程序还可以正常运行

问题:桌面黑屏,程序可以正常运行操作 解决方法: 1.Ctrl Alt Del 2.点击 【任务管理器】-->【文件F】-->【运行新任务N】 3.输入 explorer.exe 回车

Docker 镜像的缓存特性

Author:rab 目录 前言一、构建缓存二、Pull 缓存总结 前言 首先我们要清楚,Docker 的镜像结构是分层的,镜像本身是只读的(不管任何一层),当我们基于某镜像运行一个容器时,会有一个新的可写层被…

Spring的AOP开发-注解方式开发AOP

基于注解配置的AOP 注解方式AOP的基本使用 Spring的AOP也提供了注解方式配置,使用相应的注解替代之前的xml配置,xml配置AOP时,我们主要配置了三部分:目标类被Spring容器管理(注解使用Service)、通知类被S…

图像和视频上传平台Share Me

本文完成于 6 月,所以反代中,域名演示还是使用的 laosu.ml,不过版本并没有什么变化; 什么是 Share Me ? Share Me 是使用 Next.js 和 PocketBase 的自托管图像和视频上传平台,具有丰富的嵌入支持和 API&…

基于Java的高校宿舍管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

【C++】unordered_map和unordered_set

哈希表 1. unordered_map1.1 概念1.2 常见接口 2. unordered_set2.1 概念2.1 常见接口 3. 底层实现3.1 哈希3.2 哈希函数3.3 闭散列和开散列3.3.1 闭散列3.3.2 开散列 3.4 模拟实现3.4.1 改造哈希桶3.4.2 模拟实现unordered_set3.4.3 模拟实现unordered_map 在C11中&#xff0c…

Promise, async, await 学习

异步编程简介: 介绍:异步编程是一种编程范式,旨在提高程序的性能和响应能力。该模型允许程序在执行某些任务时,不必等待这些任务完成就可以进行下一步操作,从而提高了程序的效率。 作用:异步编程通常用于…

IPT2602协议-USB 快速充电端口控制器

产品描述: IPT2602是一款USB端口快速充电协议控制芯片。IPT2602智能识别多种快速充电协议,对手机等受电设备进行快速充电。IPT2602根据受电设备发送的电压请求能够精确的调整VBUS输出电压,从而实现快速充电。 IPT2602在调整5V输出电压前会自动…

10.5 认识XEDParse汇编引擎

XEDParse 是一款开源的x86指令编码库,该库用于将MASM语法的汇编指令级转换为对等的机器码,并以XED格式输出,目前该库支持x86、x64平台下的汇编编码,XEDParse的特点是高效、准确、易于使用,它可以良好地处理各种类型的指…

[硬件基础]-快速了解RS232串行通信

快速了解RS232串行通信 文章目录 快速了解RS232串行通信1、概述2、什么是串行数据通信?3、什么是RS232?4、RS232应用5、RS232如何工作?6、RS232协议基础6.1 电压与逻辑表示6.2 数据编码6.3 起始位和停止位6.4 奇偶校验位6.5 波特率6.5 RS232电…

掌握 SwiftUI 中的 ScrollView

文章目录 前言scrollTransition 修饰符ScrollTransitionPhase弹性动画总结 前言 SwiftUI 框架的第五个版本引入了许多与 ScrollView 相关的新 API,使其比以前更强大。本周将开始介绍 ScrollView 在 SwiftUI 中的新功能系列文章,首先我们将讨论滚动过渡。…

【LeetCode: 918. 环形子数组的最大和 | 动态规划】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

关联规则挖掘(上):数据分析 | 数据挖掘 | 十大算法之一

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据…

【全方位带你配置yolo开发环境】快速上手yolov5

本文用于记录yolo开发环境的配置,以及我在配置中出现的各种问题,以供大伙参考。💥💥💞💞欢迎来到本博客❤️❤️💥💥 本人持续分享更多关于电子通信专业内容以及嵌入式和单片机的知识…

阿里云服务器ECS详细介绍_云主机_服务器托管_弹性计算

阿里云服务器ECS英文全程Elastic Compute Service,云服务器ECS是一种安全可靠、弹性可伸缩的云计算服务,阿里云提供多种云服务器ECS实例规格,如经济型e实例、通用算力型u1、ECS计算型c7、通用型g7、GPU实例等,阿里云服务器网分享阿…

使用css制作3D盒子,目的是把盒子并列制作成3D货架

1. 首先看效果&#xff08;第一个五颜六色的是透明多个面&#xff0c;第2-3都是只有3个面是我实际需要的&#xff0c;右边的有3个并列的正方体与3个并列的长方体&#xff09;&#xff1a; 长方体与正方体&#xff0c;所有代码&#xff1a; <!DOCTYPE html> <html lan…

汽车网络安全--安全芯片应用场景解析

​在聊汽车网络安全时,最先想到的就是使用芯片内置HSM,比如说英飞凌TC2xx系列的HSM、瑞萨RH850的ICU、NXP的HSE等等;实际上除了内置HSM,还有外置HSM(通过UART、SPI等通信)、安全存储芯片等等。而这些芯片统称为安全芯片。 安全芯片的主要作用是为整个系统建立起一个可信的…

【Java】类和接口的区别

1. 类和类的继承关系&#xff08;一个类只能单继承一个父类&#xff0c;不能继承n多个不同的父类&#xff09; 继承关系&#xff0c;只能单继承&#xff0c;但可以多层继承 2. 类和接口的实现关系&#xff08;一个类可以实现n多个不同的接口&#xff09; 实现关系&#xff0c;可…

【QT开发笔记-基础篇】| 第四章 事件QEvent | 4.4 鼠标按下、移动、释放事件

本章要实现的整体效果如下&#xff1a; QEvent::MouseButtonPress ​ 鼠标按下时&#xff0c;触发该事件&#xff0c;它对应的子类是 QMouseEvent QEvent::MouseMove ​ 鼠标移动时&#xff0c;触发该事件&#xff0c;它对应的子类是 QMouseEvent QEvent::MouseButtonRel…