12-物联网开发终端管理篇-java使用Druid连接池获取MySQL数据库数据,并通过MQTT发送(Windows系统)
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/iot_terminal_management" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
说明
上节是通过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"}
{"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://www.cnblogs.com/yangfengwu/p/10359132.html
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
常理来讲测试完毕之后需要禁止别的电脑远程直接来访问数据库
可以把测试账号设置为本机访问
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2021-09-12 1-CH579M+Air724UG(4G GPRS)远程升级篇OTA(自建物联网平台)-CH579通过Air724UG(4G GPRS)使用http或https远程下载升级单片机程序(单片机程序轮训检查更新)
2021-09-12 2-CH579M+Air724UG(4G GPRS)远程升级篇OTA(自建物联网平台)-什么是http,怎么通过http下载文件数据,http分段下载
2020-09-12 006-STM32+ESP8266+AIR202/302基本控制方案(阿里云物联网平台)-阿里云物联网平台加入规则引擎(云产品流转),让两个MQTT设备之间实现通信
2020-09-12 004-在阿里云物联网平台上动态注册设备(基于Android)
2016-09-12 C#虚方法
2016-09-12 C#构造方法--实例化类时初始化的方法
2016-09-12 C#抽象类与抽象方法--就是类里面定义了函数而函数里面什么都没有做的类