• 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

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

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

  • 相关阅读:
    Drop goldengate用户时报ORA-00604 ORA-20782 ORA-06512问题解决
    如何查看机器品牌型号
    ORA-28040:没有匹配的验证协议
    oracle 12C CDB下开启wallet
    mysql备份和恢复
    手工模拟vip切换
    半同步复制的安装部署
    linux下安装mysql5.7.11(二进制方式)
    postgrep创建存储过程例子
    Nginx 是前端工程师的好帮手
  • 原文地址:https://www.cnblogs.com/yangfengwu/p/16686141.html
Copyright © 2020-2023  润新知