折燕 2023-03-01 14:26 采纳率: 82.1%
浏览 43
已结题

java串口通信怎么把读出来的数据写进数据库

我用Java实现串口通信,成功从指定接口读出了数据,现在有什么方法可以实现把读出来的数据写进数据库吗?直接在下面加sql语句好像不行


```java
private static void readHoldingRegistersTest(ModbusMaster master, int slaveId, int start, int len) {
        String sql="";
        try {
            ReadHoldingRegistersRequest request = new ReadHoldingRegistersRequest(slaveId, start, len);
            ReadHoldingRegistersResponse response = (ReadHoldingRegistersResponse)master.send(request);
            if (response.isException()) {
                System.out.println("Exception response: message=" + response.getExceptionMessage());
            } else {
                System.out.println("read success"+ Arrays.toString(response.getShortData()));
                /*String TARGET_ANGLE = response.getShortData().toString();
                Map<String,Object> param = new HashMap<>();
                param.put("TARGET_ANGLE",TARGET_ANGLE);
                sql = "update tracker_tracking set TARGET_ANGLE = :TARGET_ANGLE where COMMUNICATION_BOX_NAME='NCU1'";*/
                short[] list = response.getShortData();
                for (int i = 0; i < list.length; i++) {
                    System.out.println(list[i] + " hhhhhhh ");
                }
            }
        } catch (ModbusTransportException e) {
            e.printStackTrace();
        }
    }

```

  • 写回答

3条回答 默认 最新

  • Web Security Loop 2023-03-01 14:32
    关注
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    
    public class SerialPortReader {
        
        // JDBC连接配置信息
        private static final String DB_URL = "jdbc:mysql://localhost:3306/test";
        private static final String DB_USER = "root";
        private static final String DB_PASSWORD = "password";
        
        public static void main(String[] args) {
            
            // 创建数据库连接
            try (Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD)) {
                
                // 准备SQL语句
                String sql = "INSERT INTO data (value) VALUES (?)";
                PreparedStatement stmt = conn.prepareStatement(sql);
                
                // 读取串口数据,并将其写入数据库
                while (true) {
                    String data = readSerialPortData();  // 读取串口数据
                    stmt.setString(1, data);  // 将数据设置为SQL语句的参数
                    stmt.executeUpdate();  // 执行SQL语句,将数据插入到数据库中
                }
                
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
        // 读取串口数据的方法
        private static String readSerialPortData() {
            // 读取串口数据的代码
            return "data";  // 返回读取到的数据
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月1日
  • 已采纳回答 3月1日
  • 创建了问题 3月1日

悬赏问题

  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥15 树莓派5怎么用camera module 3啊
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗