Java ResultSet和JTable-R2XML忽略第一个值

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

我在Netbeans中用Java编写了一个代码,用数据库的结果在表中插入信息,但是返回的第一个值没有应用到表中,有人能帮我吗

表中仅显示三个数据:

如果我直接在PHPMyAdmin上运行相同的SQL,它将返回以下四个数据:

在Java中运行SQL的代码:

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
(这是导致资源泄漏的原因之一,因为忘记关闭语句)。