12-物联网开发终端管理篇-java使用Druid连接池获取MySQL数据库数据,并通过MQTT发送(linux,宝塔)
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/iot_terminal_management" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
说明
这节是 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, 先看下有没有安装 java, 可以随便找个目录点击上面的终端
输入 java -version
6, 如果没有 java 环境, 则安装下
安装 tomcat8 或者 9 版本, 安装完就会自动安装好 java 运行环境 (jdk1.8)
7, 把生成的 jar 包放到服务器上
我放到了 opt 目录, 根据自己的习惯随意
8, 点击上面的终端并进入 opt 目录
9, 终端输入 java -jar MySQLDataToMqtt.jar 命令启动程序
如果要指定 JDK 路径运行 / 你的 JDK 文件目录 /bin/java -jar MqttDataToMySQL.jar
让程序在后台运行
1, 在终端里面按下键盘的 Ctrl+C 组合键退出程序
2, 输入 nohup java -jar MySQLDataToMqtt.jar &
如果要指定 JDK 路径运行 nohup / 你的 JDK 文件目录 /bin/java -jar MqttDataToMySQL.jar &
3, 程序已经运行,13778 为程序运行的 PID 值; 并生成了日志文件 nohup.out
4, 把这个控制台关闭
5, 点击刷新一下就可以看到日志文件
6. 如何关闭程序
先查看程序的进程 PID, ps aux|grep MySQLDataToMqtt.jar
输入 kill -9 13778 关闭程序