阿里云服务器环境、MySQL数据库搭建 maven项目接受HTTP2端数据
没睡午觉的小鸭子,还是坚持下来写完这篇博文????
想要尝试完成环境搭建的小伙伴可以根据自己的需求安装尝试哈。
博文使用LNMP(Nginx/MySQL/PHP)
对于小白来说还是比较容易的啦。
使用putty
登陆阿里云服务器端
更换到安装包路径cd **
使用wget
的方法下载LNMP的安装包 可以在网站下载连接处右键复制链接
登陆后运行:screen -S lnmp
如果提示screen: command not found
命令不存在可以执行:yum install screen 或 apt-get install screen
安装。
然后使用yum install wget 或 apt-get install wget
命令安装
然后个人推荐MySQL选择默认的5.5.60,不然会遇到不少麻烦。
安装成功后会显示下图↓
如果出现安装失败,可以尝试重新安装,删除服务器中现有的环境、数据库等…
数据库最基础的语句:
因为我们的项目需要使用maven
项目 所以还要安装java环境(这里就不细说了)
需要操作到树莓派的小伙伴可以借阅:
然后我们需要完成的任务就是通过服务器端订阅设备发出的消息,这中间通过的媒介就是阿里云物联网平台。
https://help.aliyun.com/document_detail/87254.html?spm=a2c4g.11186623.6.556.12df522f0puLPm
在maven项目pom.xml
中添加依赖项:
<dependency>
<groupId>com.aliyun.openservices</groupId>
<artifactId>iot-client-message</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>3.7.1</version>
</dependency>
写好了maven项目生成可执行jar之后就可以打开端口啦:
大家可以是screen的方法让jar程序在后台一直运行:screen -S dl
如果你不是负责硬件方面,可以使用阿里云物联网平台的在线调试,测试代码介绍情况。
接收到设备端发送来的Topics
:
并且写入数据库中:
Connection conn = null;
String sql;
// MySQL的JDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称?参数=值
// 避免中文乱码要指定useUnicode和characterEncoding
// 执行数据库操作之前要在数据库管理系统上创建一个数据库,名字自己定,
// 下面语句之前就要先创建javademo数据库
String url = "jdbc:mysql://localhost:3306/position?" + "user=username&password=*******&useUnicode=true&characterEncoding=UTF8";
try {
// 之所以要使用下面这条语句,是因为要使用MySQL的驱动,所以我们要把它驱动起来,
// 可以通过Class.forName把它加载进去,也可以通过初始化来驱动起来,下面三种形式都可以
Class.forName("com.mysql.jdbc.Driver");// 动态加载mysql驱动
// com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver();
// new com.mysql.jdbc.Driver();
System.out.println("成功加载MySQL驱动程序");
// 一个Connection代表一个数据库连接
conn = DriverManager.getConnection(url);
// Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等
Statement stmt = conn.createStatement();
int result = 1;
// executeUpdate语句会返回一个受影响的行数,如果返回-1就没有成功
if (result != -1) {
sql = "insert into pos_1 values('"+position_x+"','"+position_y+"','"+df.format(new Date())+"')";
result = stmt.executeUpdate(sql);
sql = "select * from pos_1";
ResultSet rs = stmt.executeQuery(sql);// executeQuery会返回结果的集合,否则返回空值
System.out.println("position-x = \t position-y = \t time = ");
while (rs.next()) {
System.out.println(rs.getString(1) + "\t" + rs.getString(2) + "\t" + rs.getTimestamp(3));// 入如果返回的是int类型可以用getInt()
}
}
} catch (SQLException e) {
System.out.println("MySQL操作错误");
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return MessageCallback.Action.CommitSuccess;
});
然后需要将数据echo
到网页上的小伙伴,请看我上一篇博文!!完成–(˙<>˙)/–