gpt4 book ai didi

java - 不断从MYSQL的表中获取内容

转载 作者:行者123 更新时间:2023-11-29 10:46:21 25 4
gpt4 key购买 nike

我这里有一个代码。我的代码用于获取表中每一行的内容 (int) 并将其连续发送到 ActiveMQ。当表更新时,新行的内容将被发送到 ActiveMQ。

但是当我停止进程并再次重新运行时,它会将第 0 行的所有内容发送到 ActiveMQ。我希望我可以让它不断发送以前未发送的内容并再次正常工作......

我认为我必须创建一个新的数据库表来保存循环上的每个最后限制(行计数),以便我可以在进程停止时再次使用它。有什么帮助吗?

else if(vardbtype.equals("MYSQL")){
Class.forName("com.mysql.jdbc.Driver");
System.out.println("----------------------------");
int limitrowmysql = 0;
Connection c = DriverManager.getConnection("jdbc:mysql://localhost:3306/"+ vardbserver, vardbuser, vardbpassword);
while(true) {
Statement stmts = c.createStatement();
int countrowmysql = 0;
String sql = ("SELECT * FROM "+ vardbname +" LIMIT "+ limitrowmysql +", 18446744073709551615");
ResultSet rss = stmts.executeQuery(sql);
while(rss.next()) {
String message = rss.getString("MESSAGE");
System.out.println("Message = " + message);
TextMessage mssg = session.createTextMessage(message);
System.out.println("Sent: " + mssg.getText());
producer.send(mssg);
countrowmysql = countrowmysql + 1;
}
rss.close();
stmts.close();

limitrowmysql = limitrowmysql + countrowmysql;
Thread.sleep(batchperiod2);
}
}

最佳答案

正确,您需要自己处理最后看到的 id,或者利用一个框架来为您处理这个问题。

仅供引用 - 您正在寻找的模式通常称为“轮询消费者”。 Apache Camel 有代码可以自动处理这种情况。

关于java - 不断从MYSQL的表中获取内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44493347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com