<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/iot_terminal_management" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
<iframe frameborder="0" height="1500" name="ifd" scrolling="auto" src="https://mnifdv.cn/resource/cnblogs/iot_terminal_management" width="100%"></iframe>
这一节是使用java连接MQTT服务器,然后订阅主题获取所有设备数据,
然后通过Druid连接池把数据写入MySQL数据库.
注: java连接MQTT和Android连接MQTT是一样的.
java使用Druid连接池连接数据库可参考提供的MySQL基础开源教程.
java代码使用IntelliJ IDEA软件打开.
字段id, 类型是int, 去掉允许空值, 设置为自增, 然后设置为主键;
字段data_time, 类型设置为timestamp;(作为数据存储的时间)
字段client_id, 类型设置为varchar;(记录设备的id)
字段temperature, 类型设置为float;(存温度数据)
字段humidity, 类型设置为float;(存湿度数据)
可以打开表看下,现在是没有数据
如果版本小于1.8则需要安装(只需要安装,不需要配置环境变量)
安装完以后不需要配置环境变量,只需要在软件中设置JDK路径
如果设备的数据格式和我的不一样,用户根据自己的数据格式修改
我的设备上报数据的格式是 {"data":"sensor","type":"th","temperature":45,"humidity":23}
输入 java -version
软件需要1.8版本及其以上的JDK运行, 如果已经安装了别的JDK版本,
可以再安装个1.8版本的,不需要配置环境变量,后面有说明怎么指定JDK运行. 记得往后看哈!
我放到了opt目录,根据自己的习惯随意
如果要指定JDK路径运行 /你的JDK文件目录/bin/java -jar MqttDataToMySQL.jar
如果要指定JDK路径运行 nohup /你的JDK文件目录/bin/java -jar MqttDataToMySQL.jar &
先查看程序的进程PID, ps aux|grep MqttDataToMySQL.jar
输入 kill -9 3073 关闭程序
MQTT使用的是paho.client.mattv3-1.2.0的jar包
数据库除了基本的jabc连接器以外,使用了阿里巴巴的开源连接池 druid