Java ResultSet nex()返回false

时间:2016-10-23 16:41:56

标签: java mysql resultset

我是新来的,我寻找类似的东西,但我还没找到。

这是获取mPessoas列表的代码,但它只返回1条记录,但记录更多。

public class PessoasDAO {

public static List<ObjectsBD> getAll(String sql) {
    Connection conn = null;
    PreparedStatement ps = null;
    List<ObjectsBD> mPessoasList = new ArrayList<>();
    try {
        conn = Conexao.getConnection();
        ps = conn.prepareStatement(sql);
        ResultSet rs = ps.executeQuery();

        Pessoas mPessoas = new Pessoas();
        Logradouro mLogradouro = new Logradouro();
        Bairro mBairro = new Bairro();
        Cidade mCidade = new Cidade();
        Estado mEstado = new Estado();
        Pais mPais = new Pais();

        while (rs.next()) {
            mPessoas.setId(rs.getInt(1));
            mPessoas.setNome(rs.getString(2));
            mLogradouro.setId(rs.getInt(3));
            mBairro.setId(rs.getInt(4));
            mCidade.setId(rs.getInt(5));
            mEstado.setId(rs.getInt(6));
            mPais.setId(rs.getInt(7));
            mLogradouro.setNome(rs.getString(8));
            mBairro.setNome(rs.getString(9));
            mCidade.setNome(rs.getString(10));
            mEstado.setNome(rs.getString(11));
            mPais.setNome(rs.getString(12));

            mPessoas.setLogradouro(mLogradouro);
            mPessoas.setBairro(mBairro);
            mPessoas.setCidade(mCidade);
            mPessoas.setEstado(mEstado);
            mPessoas.setPais(mPais);

            mPessoasList.add(mPessoas);

        }
    } catch (SQLException e) {
        System.out.println("ERRO: " + e.getMessage());
    } finally {
        if (ps != null) {
            try {
                ps.close();
            } catch (SQLException ex) {
                System.out.println("ERRO: " + ex.getMessage());
            }
        }
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException ex) {
                System.out.println("ERRO: " + ex.getMessage());
            }
        }
    }
    return mPessoasList;
}
}

这里是mySQL查询;

SELECT p.*, l.nome AS logradouro, b.nome AS bairro, c.nome AS cidade, e.nome AS estado, pa.nome AS pais FROM pessoas AS p INNER JOIN logradouro AS l ON p.logradouroIdLogradouro = l.idLogradouro INNER JOIN bairro AS b ON p.bairroIdBairro = b.idBairro INNER JOIN cidade AS c ON P.cidadeIdCidade = c.idCidadeINNER JOIN estado AS e ON p.estadoIdEstado = e.idEstado INNER JOIN pais AS pa ON p.paisIdPais = pa.idPais ORDER BY p.nome ASC;

我已经尝试过,创建一个新的语句,如

PreparedStatement stmt = conn.prepareStatement(sql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);

但不起作用。

如果有人知道解释为什么会这样,我将不胜感激。 谢谢

0 个答案:

没有答案