gpt4 book ai didi

java - 来自其他类的空结果语句

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

即使查询有效,我尝试从另一个类检索的结果集也返回 null。我试图根据数据库中保存的记录初始化我的对象,这意味着如果最初有一条记录sqlite,我检索具有最新日期的一个。否则,我尝试从 mysql 数据库检索最早的一个。从 mysql 数据库检索结果集的代码如下:

   public ResultSet lowestDate() throws SQLException {
ResultSet rs1 = null;
String resultQuery = "SELECT * FROM alarm ORDER BY `timestamp` ASC LIMIT 1";
rs1 = stmt.executeQuery(resultQuery);
return rs1;
}

语句是全局初始化的。我在另一个类中这样调用它:

public void setLastAlarm() throws SQLException, ParseException {
String liteQuery = "SELECT * FROM alarm_entries ORDER BY date(`timestamp`) DESC LIMIT 1";
conn.connectLite();
Connection getCon = conn.getLiteConnection();
try {
stmt = getCon.createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
try {
rs = stmt.executeQuery(liteQuery);
if (rs.next()) {
//while (rs.next()) {
nuDate = rs.getString("timestamp");
newDate = format.parse(nuDate);
lastAlarm.setBacklogId(rs.getBytes("backlog_id"));
lastAlarm.setTimestamp(newDate);
//}
}
else{
rsq=mysqlConnection.lowestDate();
lastAlarm.setTimestamp(format.parse(rsq.getString("timestamp")));
lastAlarm.setBacklogId(rsq.getBytes("backlog_id"));
}
}catch (Exception e){
e.printStackTrace();
}
}

public void run() {
try {
setLastAlarm();

最佳答案

您永远不会对从 lowestDate() 辅助方法返回的结果集调用 ResultSet#next()。因此,游标永远不会前进到结果集中的第一个(也是唯一一个)记录。但我认为以这种方式分解 JDBC 代码是一个坏主意。相反,只需内联两个查询,如下所示:

try {
rs = stmt.executeQuery(liteQuery);
if (rs.next()) {
nuDate = rs.getString("timestamp");
newDate = format.parse(nuDate);
lastAlarm.setBacklogId(rs.getBytes("backlog_id"));
lastAlarm.setTimestamp(newDate);
}
else {
String resultQuery = "SELECT * FROM alarm ORDER BY timestamp LIMIT 1";
rs = stmt.executeQuery(resultQuery);
if (rs.next()) {
String ts = rs.getString("timestamp");
lastAlarm.setTimestamp(format.parse(ts));
lastAlarm.setBacklogId(rs.getBytes("backlog_id"));
}
}
} catch (Exception e){
e.printStackTrace();
}

关于java - 来自其他类的空结果语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47364741/

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