底层NB-IoT数据流的数据库写入
本文主要针对本人在NB-IoT项目中有关数据库的开发和使用,进行一些粗浅的学习指导。欢迎大家在评论区批评指正,感谢!
文章目录
- 前言
- 一、建立工程
- 1.package:model
- 2.package:dao
- 3.package:util
- 4.package:main
- 二、结果验证
前言
提示:在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);}}
}
二、结果验证
不断刷新数据库,发现学生数据信息在不断填入表。