Java ResultSet和JTable-R2XML忽略第一个值
我在Netbeans中用Java编写了一个代码,用数据库的结果在表中插入信息,但是返回的第一个值没有应用到表中,有人能帮我吗 表中仅显示三个数据: 如果我直接在PHPMyAdmin上运行相同的SQL,它将返回以下四个数据: 在Java中运行SQL的代码:Java ResultSet和JTable-R2XML忽略第一个值,java,mysql,jdbc,Java,Mysql,Jdbc,我在Netbeans中用Java编写了一个代码,用数据库的结果在表中插入信息,但是返回的第一个值没有应用到表中,有人能帮我吗 表中仅显示三个数据: 如果我直接在PHPMyAdmin上运行相同的SQL,它将返回以下四个数据: 在Java中运行SQL的代码: public ResultSet getInfos(){ VIEW.Inicio Inicio = new VIEW.Inicio(); String SQL = "SELECT * FROM tb
public ResultSet getInfos(){
VIEW.Inicio Inicio = new VIEW.Inicio();
String SQL = "SELECT * FROM tb_denuncia WHERE status = 1 ORDER BY prioridade DESC, id ASC LIMIT ?";
try {
PreparedStatement stmt = this.getConexao().prepareStatement(SQL);
stmt.setInt(1, 10);
ResultSet res = stmt.executeQuery();
if(res.next()){
return res;
} else {
return null;
}
} catch (SQLException erro) {
throw new RuntimeException(erro);
}
}
Tabela_TOP10.setModel(DbUtils.resultSetToTableModel(res));
表中箭头所在的代码:
public ResultSet getInfos(){
VIEW.Inicio Inicio = new VIEW.Inicio();
String SQL = "SELECT * FROM tb_denuncia WHERE status = 1 ORDER BY prioridade DESC, id ASC LIMIT ?";
try {
PreparedStatement stmt = this.getConexao().prepareStatement(SQL);
stmt.setInt(1, 10);
ResultSet res = stmt.executeQuery();
if(res.next()){
return res;
} else {
return null;
}
} catch (SQLException erro) {
throw new RuntimeException(erro);
}
}
Tabela_TOP10.setModel(DbUtils.resultSetToTableModel(res));
有人知道如何显示所有的值吗返回?您尚未包含
DbUtils.resultSetToTableModel()方法的代码,但我强烈怀疑它看起来像这样:
public YourTableModel resultsetTablemodel(ResultSet ResultSet){
YourTableModel tableModel=新建YourTableModel();
while(resultSet.next()){
//从结果集中读取一行并将其添加到表模型中。
}
// ...
}
注意调用resultSet.next()
。这是处理ResultSet
中的行的标准方法:检查是否有下一行要读取(这会将结果集移动到下一行),如果有,则从该行读取值,对其执行一些操作,然后循环处理更多行
还要注意,在将getInfos()
方法传递给DbUtils.resultsetTableModel()
之前,该方法还对结果集调用.next()
。因此,在代码开始处理结果集中的任何数据之前,.next()
已被调用两次。这会导致它跳过第一行
我真的不明白为什么您的代码中有这样的内容:
if(res.next()){
返回res;
}否则{
返回null;
}
将其替换为
返回res;
葡萄牙语很漂亮,但是最好将问题翻译成英语,或者将其移动到MySQL Workbench中提交数据的位置,您确定连接到同一个数据库吗?请提供一份报告。还要注意,您当前的代码正在泄漏资源,并且不应从该getInfos
返回ResultSet
(这是导致资源泄漏的原因之一,因为忘记关闭语句)。