首页 > 解决方案 > 如何将生成的数据存储在数据库中?

问题描述

我在 java 上创建了一个工作正常的 kafka 生产者,现在我试图将生成的数据存储在 mySQL 数据库中,但我不知道如何。我试过这段代码,但它不起作用

try {
           String MyUrl = "jdbc:mysql://130.2.2.2/pfa";
           Class.forName("com.mysql.jdbc.Driver"); 
           Connection con = DriverManager.getConnection(MyUrl, "root", "");
           Statement stm = con.createStatement();
           ResultSet rs = stm.executeQuery("select * from tmp");

           while(rs.next()) {
               producer.send(new ProducerRecord<String, String>("test",rs.getString(1)));
               con.close();
           }
       }catch(Exception e) {System.out.println(e);}

非常感谢有关将数据发送到数据库的任何帮助

标签: javamysqldatabaseapache-kafkakafka-producer-api

解决方案


我不确定我是否理解您期望从该代码中发生什么。

  1. 您正在从数据库中读取,从不插入其中

  2. 您在每次循环迭代后关闭数据库连接,这意味着您将得到一个异常,即数据库已经在第二个循环中关闭,因此结果集也可能终止(如果这些是懒惰的,我有点模糊对象与否)

我可以建议您关注 JDBC 连接器上的 Deep Dive 吗?https://dev.to/rmoff/kafka-connect-jdbc-sink-tips-tricks-video-walkthrough-2egf

我复制粘贴它,因为作者说它有效

这绝不是学习任何东西的好方法。您可以阅读代码并将其全部输入,边走边向自己解释......但切勿盲目复制您认为可以解决问题的内容


推荐阅读