底层NB-IoT数据流的数据库写入
本文主要针对本人在NB-IoT项目中有关数据库的开发和使用,进行一些粗浅的学习指导。欢迎大家在评论区批评指正,感谢!
前言
提示:在MySQL数据库(二)服务器特定端口的数据流监听笔记中,已经成功实现了数据库的基本连接,但是没有数据的数据库毫无意义,接下来将要实现数据库的数据添加。
提示:以下是本篇文章正文内容,下面案例可供参考
一、建立工程
依旧是使用eclipse软件
1.package:model
用来构建填写进数据库的类。
例如:需要将学生信息填写进数据库,便可构建Student类。
属性:identity;name;sex
属性设置好后,编写构造方法等
package yzu.java.model;
public class Student {
int identity;
String name;
boolean sex;
public int getIdentity() {
return identity;
}
public void setIdentity(int identity) {
this.identity = identity;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isSex() {
return sex;
}
public void setSex(boolean sex) {
this.sex = sex;
}
public Student(int identity, String name, boolean sex) {
super();
this.identity = identity;
this.name = name;
this.sex = sex;
}
}
2.package:dao
用来构建对数据库进行增删查改操作的函数。
例如:
需要将学生信息进行数据库添加,便使用sql语句:insert;
需要将学生信息进行数据库删除,便使用sql语句:delete;
需要将学生信息进行数据库查找,便使用sql语句:select;
需要将学生信息进行数据库修改,便使用sql语句:update;
package yzu.java.dao;
import java.sql.*;
public class StudentDao {
public int add(Connection con,Student student)throws Exception{
String sql="insert into 数据库表名称 values(?,?,?)";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setInt(1, student.get());
pstmt.setString(2, student.getIdentity());
pstmt.setBoolean(3, student.isSex());
return pstmt.executeUpdate();
}
}
3.package:util
用来连接数据库。
在MySQL数据库(二)服务器特定端口的数据流监听笔记中,已经成功实现了数据库的基本连接,本文不做过多赘述。
4.package:main
调用:model、dao、util 以实现数据库的增删查改操作。
package yzu.java.main;
import java.net.*;
import java.sql.*;
import yzu.java.dao.StudentDao;
import yzu.java.model.Student;
import yzu.java.util.DbUtil;
public class PortListener {
public static void main(String args[]) throws Exception
{
DatagramSocket serverSocket = new DatagramSocket(监听端口号);
DbUtil dbUtil = new DbUtil();
StudentDao studentDao = new StudentDao();
byte[] receiveData = new byte[20];
Connection con = dbUtil.getCon();
if(con !=null){
System.out.println("数据库连接成功!");
}
while(true)
{
//构造数据包接收数据
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
//接收数据
serverSocket.receive(receivePacket);
//解析数据
String sentence = new String( receivePacket.getData());
int identity = Integer.parseint(sentence.substring(0, 10));
String name= sentence.substring(10, 14);
boolean sex = Boolean.parseBoolean(sentence.substring(14);
Student student = new Student(identity, name, sex);
int i = StudentDao.add(con, student);
}
}
}
二、结果验证
不断刷新数据库,发现学生数据信息在不断填入表。