前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >12-物联网开发终端管理篇-java使用Druid连接池获取MySQL数据库数据,并通过MQTT发送(Windows系统)

12-物联网开发终端管理篇-java使用Druid连接池获取MySQL数据库数据,并通过MQTT发送(Windows系统)

作者头像
杨奉武
发布2022-09-28 15:19:50
1.2K0
发布2022-09-28 15:19:50
举报
文章被收录于专栏:知识分享知识分享

说明

上节是通过MQTT接收数据并写到数据库, 这节是java使用Druid连接池获取MySQL数据库数据,并通过MQTT发送

测试

1,使用IntelliJ IDEA 打开这节的工程

2,源码需要使用JDK1.8及其以上版本

如果版本小于1.8则需要安装(只需要安装,不需要配置环境变量)

安装完以后不需要配置环境变量,只需要在软件中设置JDK路径

3,先启动看下效果(默认连接我的数据库和MQTT)

4,打开MQTT调试助手

发布的主题:historical/request/863488051205014

订阅的主题:historical/receive/863488051205014

发送的消息:{"data":"humiture","start_time":"2022-07-30 00:00:00","stop_time":"2022-07-30 22:48:00"}

代码语言:javascript
复制
{"code":"OK","data":[{"data_time":"2022-07-30 17:07:41","temperature":255.0,"humidity":255.0},
{"data_time":"2022-07-30 22:44:43","temperature":255.0,"humidity":255.0},
{"data_time":"2022-07-30 22:44:46","temperature":255.0,"humidity":255.0},
{"data_time":"2022-07-30 22:44:48","temperature":255.0,"humidity":255.0},
{"data_time":"2022-07-30 22:44:50","temperature":255.0,"humidity":255.0},
{"data_time":"2022-07-30 22:44:52","temperature":255.0,"humidity":255.0},
{"data_time":"2022-07-30 22:44:54","temperature":255.0,"humidity":255.0},
{"data_time":"2022-07-30 22:44:57","temperature":255.0,"humidity":255.0},
{"data_time":"2022-07-30 22:44:59","temperature":255.0,"humidity":255.0},
{"data_time":"2022-07-30 22:45:01","temperature":255.0,"humidity":255.0}],
"client_id":"863488051205014"}

5,返回的数据是提供的测试数据库里面的数据

程序说明

1,连接的数据库和MQTT信息

2,MQTT订阅主题  historical/request/

3,接收消息格式说明

消息格式:  {"data":"humiture","start_time":"2022-07-30 00:00:00","stop_time":"2022-07-30 22:48:00"}

start_time:数据的开始时间;  stop_time数据的结束时间

4,查询数据

根据client_id 和 时间段查询数据

String sql = "select data_time, client_id, temperature, humidity from humiture_table where client_id=" + "'"

+client_id+"'"+" and data_time>="+"'"+start_time+"'"+" and data_time<="+"'"+stop_time+"'";

5,把从数据库查询到的数据按照json格式使用MQTT发送给设备

发送的主题: "historical/receive/设备的clientid"

生成可执行jar包, 并安装运行到服务器

1,停止运行

2,因为程序已经设置过生成jar包,所以用户直接按照下面操作即可生成可执行jar包.

3,补充一下实际生成jar包的流程(用户不需要操作)

4,生成的jar包的位置

5,如果服务器没有安装JDK,请用户先安装JDK

如果已经安装了别的JDK版本,这个版本的可以只安装,不配置环境变量,

后面有说明怎么指定JDK运行. 记得往后看哈!

https://cloud.tencent.com/developer/article/1397720

6,把jar包拷贝到服务器

7,打开命令窗口 cmd

8,进入到jar包目录,并执行 java -jar MySQLDataToMqtt.jar

显示下面的 initDataSource success  subscribe Success 就说明成功执行了

让程序在后台运行

1,关闭

2,注意呀!不要犯常识性错误!把文件扩展名选中!

3,在jar包目录新建一个后缀名字为.bat的文件

编辑里面的内容如下(MySQLDataToMqtt.jar 就是jar包的名字)

@echo off

start javaw -jar MySQLDataToMqtt.jar

exit

4,双击运行即可

5,再做个关闭的脚本

编辑里面的内容如下(MySQLDataToMqtt.jar 就是jar包的名字)

@echo off

for /f "delims= " %%a in ('jps -lv ^| find /i "MySQLDataToMqtt.jar"') do set PID=%%a

taskkill /f /PID %PID%

exit

6,也可以指定JDK路径运行

C:\java8\jdk1.8.0.131  为JDK的安装路径

@echo off

set JAVA_HOME=C:\java8\jdk1.8.0.131

set CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOMe%\lib\tools.jar;

set Path=%JAVA_HOME%\bin;

start javaw -jar MySQLDataToMqtt.jar

exit

注意事项1

1,正常情况下java软件是放到服务器上运行的

数据库连接地址改为localhost , 数据库用户名和密码应该改为 root 的

MQTT的地址也改为  tcp://localhost:1883

修改完成以后,重新生成jar包,然后放到服务器上即可

注意事项2

常理来讲测试完毕之后需要禁止别的电脑远程直接来访问数据库

可以把测试账号设置为本机访问

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-09-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 说明
    • 上节是通过MQTT接收数据并写到数据库, 这节是java使用Druid连接池获取MySQL数据库数据,并通过MQTT发送
    • 测试
      • 1,使用IntelliJ IDEA 打开这节的工程
        • 2,源码需要使用JDK1.8及其以上版本
          • 如果版本小于1.8则需要安装(只需要安装,不需要配置环境变量)
          • 安装完以后不需要配置环境变量,只需要在软件中设置JDK路径
        • 3,先启动看下效果(默认连接我的数据库和MQTT)
          • 4,打开MQTT调试助手
            • 发布的主题:historical/request/863488051205014
            • 订阅的主题:historical/receive/863488051205014
            • 发送的消息:{"data":"humiture","start_time":"2022-07-30 00:00:00","stop_time":"2022-07-30 22:48:00"}
          • 5,返回的数据是提供的测试数据库里面的数据
          • 程序说明
            • 1,连接的数据库和MQTT信息
              • 2,MQTT订阅主题  historical/request/
                • 3,接收消息格式说明
                  • 消息格式:  {"data":"humiture","start_time":"2022-07-30 00:00:00","stop_time":"2022-07-30 22:48:00"}
                  • start_time:数据的开始时间;  stop_time数据的结束时间
                • 4,查询数据
                  • 根据client_id 和 时间段查询数据
                  • String sql = "select data_time, client_id, temperature, humidity from humiture_table where client_id=" + "'"
                • 5,把从数据库查询到的数据按照json格式使用MQTT发送给设备
                  • 发送的主题: "historical/receive/设备的clientid"
              • 生成可执行jar包, 并安装运行到服务器
                • 1,停止运行
                  • 2,因为程序已经设置过生成jar包,所以用户直接按照下面操作即可生成可执行jar包.
                    • 3,补充一下实际生成jar包的流程(用户不需要操作)
                      • 4,生成的jar包的位置
                        • 5,如果服务器没有安装JDK,请用户先安装JDK
                          • 如果已经安装了别的JDK版本,这个版本的可以只安装,不配置环境变量,
                          • 后面有说明怎么指定JDK运行. 记得往后看哈!
                          • https://cloud.tencent.com/developer/article/1397720
                        • 6,把jar包拷贝到服务器
                          • 7,打开命令窗口 cmd
                            • 8,进入到jar包目录,并执行 java -jar MySQLDataToMqtt.jar
                              • 显示下面的 initDataSource success  subscribe Success 就说明成功执行了
                          • 让程序在后台运行
                            • 1,关闭
                                • 2,注意呀!不要犯常识性错误!把文件扩展名选中!
                                  • 3,在jar包目录新建一个后缀名字为.bat的文件
                                    • 编辑里面的内容如下(MySQLDataToMqtt.jar 就是jar包的名字)
                                    • @echo off
                                  • 4,双击运行即可
                                    • 5,再做个关闭的脚本
                                      • 编辑里面的内容如下(MySQLDataToMqtt.jar 就是jar包的名字)
                                      • @echo off
                                    • 6,也可以指定JDK路径运行
                                      • C:\java8\jdk1.8.0.131  为JDK的安装路径
                                      • @echo off
                                      • set JAVA_HOME=C:\java8\jdk1.8.0.131
                                      • set CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOMe%\lib\tools.jar;
                                      • set Path=%JAVA_HOME%\bin;
                                      • start javaw -jar MySQLDataToMqtt.jar
                                      • exit
                                  • 注意事项1
                                    • 1,正常情况下java软件是放到服务器上运行的
                                      • 数据库连接地址改为localhost , 数据库用户名和密码应该改为 root 的
                                      • MQTT的地址也改为  tcp://localhost:1883
                                    • 修改完成以后,重新生成jar包,然后放到服务器上即可
                                    • 注意事项2
                                      • 常理来讲测试完毕之后需要禁止别的电脑远程直接来访问数据库
                                        • 可以把测试账号设置为本机访问
                                        相关产品与服务
                                        云数据库 SQL Server
                                        腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                                        领券
                                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档