IoT知识点补充

news2025/4/8 3:45:01

MySQL vs NoSQL数据库(MongoDB)

这里举的例子使用MySQL存储用户信息和博客文章的关系数据,同时使用MongoDB存储博客文章的评论,因为评论可以是不同结构的半结构化数据。

MySQL部分如下

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class MySQLExample {

    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/blog_db";
        String username = "user";
        String password = "password";

        try {
            Connection connection = DriverManager.getConnection(url, username, password);

            // 假设创建一个用户并发布一篇博客文章
            createUser(connection, "john_doe", "john@example.com");
            createBlogPost(connection, "john_doe", "My First Blog Post", "This is the content of my first blog post.");

            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public static void createUser(Connection connection, String username, String email) throws SQLException {
        String insertUserQuery = "INSERT INTO users (username, email) VALUES (?, ?)";
        PreparedStatement preparedStatement = connection.prepareStatement(insertUserQuery);
        preparedStatement.setString(1, username);
        preparedStatement.setString(2, email);
        preparedStatement.executeUpdate();
    }

    public static void createBlogPost(Connection connection, String author, String title, String content) throws SQLException {
        String insertPostQuery = "INSERT INTO blog_posts (author, title, content) VALUES (?, ?, ?)";
        PreparedStatement preparedStatement = connection.prepareStatement(insertPostQuery);
        preparedStatement.setString(1, author);
        preparedStatement.setString(2, title);
        preparedStatement.setString(3, content);
        preparedStatement.executeUpdate();
    }
}

MongoDB部分如下

import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;

public class MongoDBExample {

    public static void main(String[] args) {
        MongoClient mongoClient = new MongoClient("localhost", 27017);
        MongoDatabase database = mongoClient.getDatabase("blog_db");

        // 假设存储博客文章的评论
        storeBlogPostComment(database, "My First Blog Post", "User1", "Great post!");
        storeBlogPostComment(database, "My First Blog Post", "User2", "I learned a lot from this.");

        mongoClient.close();
    }

    public static void storeBlogPostComment(MongoDatabase database, String blogPostTitle, String commenter, String comment) {
        MongoCollection<Document> commentsCollection = database.getCollection("comments");
        Document commentDoc = new Document();
        commentDoc.append("blogPostTitle", blogPostTitle)
                  .append("commenter", commenter)
                  .append("comment", comment);
        commentsCollection.insertOne(commentDoc);
    }
}

  

结构化数据 vs 非结构化数据

数据定义

        结构化数据:结构化数据是按照明确定义的数据模型组织的数据。通常,结构化数据以表格、行和列的形式存储,遵循预定义的模式,如数据库表中的数据。它具有明确定义的字段和数据类型,通常使用关系型数据库来存储和管理

        非结构化数据:非结构化数据没有明确定义的数据模型。这种数据可能是自由文本、图像、音频、视频、日志文件、社交媒体帖子等。非结构化数据不遵循固定的结构或模式,其内容和格式可以变化。

数据存储

        结构化数据:结构化数据通常以表格或数据库表的形式存储在关系型数据库中。这种数据易于查询、分析和报告,因为字段和值都有固定的结构。

        非结构化数据:非结构化数据通常以文件、文档、二进制数据等形式存储在文件系统、NoSQL数据库或其他存储介质中。处理非结构化数据通常需要特定的工具和方法。

数据分析

        结构化数据:结构化数据更容易进行直接的数据分析,因为字段和关系是明确定义的。它适用于传统的商业智能和数据仓库分析。

        非结构化数据:非结构化数据的分析通常需要使用自然语言处理、机器学习、图像识别等高级技术。这些数据常用于大数据分析、社交媒体情感分析和图像识别等应用。

  

批处理 vs 流处理

        设备处理和保存数据的方法大体上分为两种:一种是对保存的数据定期进行采集和处理的批处 理,另一种是将收到的数据逐次进行处理的流处理。

  

统计分析 vs 机器学习

        智能家居为了能准确判断房间里有没有人,需要从多个传感器的值所包含的关联性来判断人在或不在房间里。人类凭经验去摸索和决定这种值,机器则靠数据分析。数据分析的代表性方法有两种,分别是统计分析和机器学习。

统计分析:

        靠人类手工操作进行的分析,基于统计学原理和方法。它包括描述性统计(例如均值、中位数、标准差)、推断统计(例如假设检验、置信区间)、回归分析、方差分析等。统计分析通常依赖于概率论和数理统计的基本概念。

机器学习:

        机器学习就如它的字面意思一样,计算机会按照程序决定的算法, 机械性地学习所给数据之间的联系性。当给出未知数据时,也会输出与其对应的值。机器学习分为两个阶段:学习阶段和识别阶段。

        举个例子,假设我们想使用若干种传感器来识别房间里有没有人。这种情况下需要准备两种数据,即房间里有人时的传感器数据(正面例子)和房间里没人时的传感器数据(反面例子)。计算机通过把这两种数据分别交给学习器,可以获取制作鉴别器用的参数。对于以参数为基准制作的鉴别器而言,只要输入从各个感测设备接收到的数据,鉴别器就能输出结果,告诉我们现在房间里是否有人。

        上述内容属于机器学习的示例之一,被称作分类问题。在用于执行数据分类的机器学习算法中有很多途径,如用于垃圾邮件过滤器的贝叶斯过滤器和用于分类文档及图像的支持向量机(Support Vector Machine, SVM)等。

  

(Java的)静态方法 vs 实例方法

        静态方法(使用 static 关键字声明):属于类,不依赖于对象实例,可以通过类名直接调用。

        实例方法(不使用 static 关键字声明):属于类的实例,必须通过对象实例调用。

public class Example {
    static void staticMethod() {
        System.out.println("Static method");
    }

    void instanceMethod() {
        System.out.println("Instance method");
    }

    public static void main(String[] args) {
        staticMethod();  // 可以直接调用静态方法
        Example obj = new Example();
        obj.instanceMethod();  // 需要通过对象调用实例方法
    }
}

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

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

相关文章

普冉PY32系列(九) GPIO模拟和硬件SPI方式驱动无线收发芯片XL2400

目录 普冉PY32系列(一) PY32F0系列32位Cortex M0 MCU简介普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境普冉PY32系列(三) PY32F002A资源实测 - 这个型号不简单普冉PY32系列(四) PY32F002A/003/030的时钟设置普冉PY32系列(五) 使用JLink RTT代替串口输出日志普冉PY32…

初出茅庐的小李博客之SPI工作模式

SPI的工作模式 SPI&#xff08;Serial Peripheral Interface&#xff09;是一种同步串行通信协议&#xff0c;常用于连接微控制器和外围设备。SPI有四种模式&#xff0c;分别是0、1、2、3模式。 0模式&#xff1a;时钟空闲时为低电平&#xff0c;数据在时钟的下降沿采样&#…

Using sunbeam to deploy openstack (by quqi99)

作者&#xff1a;张华 发表于&#xff1a;2023-10-15 版权声明&#xff1a;可以任意转载&#xff0c;转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明(http://blog.csdn.net/quqi99) What’s sunbeam sunbeam是一个部署openstack的工具&#xff0c;它会用ju…

利用ChatGPT练习口语

目录 ChatGPT 这两天发布了一个激动人心的新功能&#xff0c;App端&#xff08;包括iOS和Android&#xff09;开始支持语音对话以及图片识别功能。 这两个功能一如既往的优先开放给Plus用户使用&#xff0c;现在将App更新到最新版本&#xff0c;就能体验。 为什么说激动人心&a…

Android组件通信——PendingIntent(二十八)

1. PendingIntent 1.1 知识点 &#xff08;1&#xff09;了解PendingIntent与Intent的区别&#xff1b; &#xff08;2&#xff09;可以完成Notification功能的开发&#xff1b; &#xff08;3&#xff09;可以使用PendingIntent进行短信的发送&#xff1b; 1.2 具体内容 …

mysql作业(牛客60-80)

文章目录 606162636465666768697071727374757677787980 60 select cust_id from Customers;61 select distinct prod_id from OrderItems;62 select * from Customers;63 小小的脑袋大大的疑惑&#xff0c;按字母排&#xff1f;order by select cust_name from Customers orde…

计算机网络第2章-DNS(3)

DNS&#xff1a;因特网的目录服务 在因特网上&#xff0c;主机和人类都一样&#xff0c;可以用很多种方式进行标识&#xff0c;主机的一种标识方法是它的主机名。 但是主机名一般是用IP来表示&#xff0c;IP是由四个字节组成&#xff0c;并且有严格的层次结构&#xff0c;不利…

不止硬件,苹果的软件也是频出问题!iOS 17.0.3使iPhone在一夜之间随机开关机

就在我们以为iPhone的问题已经解决了一段时间的时候&#xff0c;一个新的问题似乎突然出现了。在Reddit和其他网站上&#xff0c;人们报告说&#xff0c;他们的iPhone在一夜之间莫名其妙地断电&#xff0c;有时会导致错过警报。 目前尚不清楚是什么原因导致了这个问题&#xf…

python利用多线程让http请求异步返回

嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 有时我们可能会碰到这样一种情况&#xff1a; 我们有一个功能&#xff0c;这个功能对外提供了一个http接口&#xff0c; 我们需要对这个http接口发起请求才能启…

Liunx中日志分析与网络设置(极其粗糙版)

liunx系统日志的管理 系统日志&#xff1a;操作系统本身和大部分服务器程序的日志文件 日志是记录系统所产生的各种事故&#xff0c;在某个时间节点发生了什么&#xff0c;发生的原因 liunx的路径是/var/log下 /var/log/messages&#xff1a;内核日志还有公共信息日志(所有…

冒泡排序(学习笔记)

冒泡排序&#xff08;基于交换的排序&#xff0c;每一轮确定一个数的位置&#xff09; 哨兵举例&#xff1a; 待排序序列&#xff1a;6 3 1 2 5 第一轮排列&#xff1a; 3 6 1 2 5 3 1 6 2 5 3 1 2 6 5 3 1 2 5 6&#xff08;最大的数移动到了正确的位置&#xff09; 第二轮排列…

Mall脚手架总结(五) —— SpringBoot整合MinIO实现文件管理

前言 在项目中我们经常有资源的上传和下载的功能需求&#xff0c;比如用户头像、产品图片、配置文件等等&#xff0c;大数据量的文件存储无疑需要更高性能的数据存储服务&#xff0c;对于无需对结构实现复杂查询的文件对象来说&#xff0c;对象存储服务无疑是一个较好的选择&am…

并查集路径压缩

我们来看看如果要是100个数&#xff0c;往20个数的集合合并如何 那么我们应该&#xff0c;把数据量小的集合往数据量大的合并 解决另一种极端场景的路径压缩

限制条件加入构造范围:Gym - 102832L

https://vjudge.net/contest/587311#problem/D 场上列方程求首项&#xff0c;假设是全部加1&#xff0c;然后一部分&#xff08;后缀&#xff09;减去 k 1 k1 k1&#xff0c;就用到了以下两个条件&#xff1a; 但在这两种情况符合情况下&#xff0c;这个条件不一定满足 然后…

【软件测试】 初识软件测试

文章目录 &#x1f334;什么是软件测试&#x1f38b;软件测试和开发的区别&#x1f6a9;软件测试与调试的区别 &#x1f333;软件测试的发展&#x1f384;软件测试岗位&#x1f340;软件测试在不同类型公司的定位&#x1f38d;一个优秀的软件测试人员具备的素质&#x1f332;软…

105AspectRatio调整宽高比组件_flutter

AspectRatio组件 AspectRatio 的作用是根据设置调整子元素 child 的宽高比。 AspectRatio 首先会在布局限制条件允许的范围内尽可能的扩展&#xff0c;widget 的高度是由宽 度和比率决定的&#xff0c;类似于 BoxFit 中的 contain&#xff0c;按照固定比率去尽量占满区域。 …

【Redis】Java Spring操作redis

目录 引入Redis依赖StringRedisTemplate使用String使用List使用Set使用hash使用zset 引入Redis依赖 StringRedisTemplate 此处RedisTemplate是把这些操作Redis的方法&#xff0c;分成了几个类别&#xff0c;分门别类的来组织的。 此处提供的一些接口风格&#xff0c;和原生的Re…

利达卓越:发挥金融力量,促进团队发展

随着中国经济的快速增长和金融改革的逐步深化&#xff0c;我国金融业取得了令人瞩目的发展。作为经济的重要支柱&#xff0c;我国金融业的规模和实力不断扩大&#xff0c;已经成为全球最大的金融市场之一。利达卓越是一支由管理精英组成的团队&#xff0c;专注于金融行业的投资…

Empowering Low-Light Image Enhancer through Customized Learnable Priors 论文阅读笔记

中科大、西安交大、南开大学发表在ICCV2023的论文&#xff0c;作者里有李重仪老师和中科大的Jie Huang&#xff08;ECCV2022的FEC CVPR2022的ENC和CVPR2023的ERL的一作&#xff09;喔&#xff0c;看来可能是和Jie Huang同一个课题组的&#xff0c;而且同样代码是开源的&#xf…

解密人工智能:KNN | K-均值 | 降维算法 | 梯度Boosting算法 | AdaBoosting算法

文章目录 一、机器学习算法简介1.1 机器学习算法包含的两个步骤1.2 机器学习算法的分类 二、KNN三、K-均值四、降维算法五、梯度Boosting算法和AdaBoosting算法六、结语 一、机器学习算法简介 机器学习算法是一种基于数据和经验的算法&#xff0c;通过对大量数据的学习和分析&…