Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Duvida no Retorno do Banco de Dados

Caros Colegas Estou com a seguinte duvida: Preciso extrair do banco de dados o ultimo numero salvo na table (tabletrt), esse valor que recebo do BD, preciso retornar para outra classe: minha duvida é como fazer

O que estou fazendo:

public class JDBCSelect {

public static void main(String[] args) throws SQLException { Connection con = new ConnectionFactory().getConnection(); PreparedStatement stmt = con.prepareStatement("select * from tabletrt"); // executa um select ResultSet rs = stmt.executeQuery();

// itera no ResultSet while (rs.next()) { Double recebeFator = rs.getDouble("LineTRT"); System.out.println(recebeFator); // Esta imprimindo todo os valores salvos, preciso apenas do ultimo valor salvo, como fazer //Como retornar o valor }

rs.close(); stmt.close(); con.close();

}

6 respostas

tua tabela tem alguma data ou contador ? pois caso tenhas, mas fazer uma select max(campo_data) from table e pronto terás o ultimo valor ... Seria uma opção pra ti.

Se você deseja o ultimo registro que se encontra no ResultSet, utilize o método last();

Para entender melhor seu funcionamento, leia adocumentação oficial da Oracle, em especial a classe ResultSet!

Tem uns métodos de verificação que podem te ajudar também :D

Leonardo Agradeço atenção, Abaixo esta o código que estou utilizando, porém no prepareStament e stmt.excute, diz que Construtor padrão não pode lidar com tipo de exceção SQLException lançada pelo construtor de super implícita . Deve definir um construtor explícito.

Voce poderia me ajudar, no que estou fazendo errado.?

import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;

import br.app.com.ConnectionFactory;

public class RecuperaFatorMult { Connection con = new ConnectionFactory().getConnection(); PreparedStatement stmt = con.prepareStatement("select * from tabletrt"); // executa um select ResultSet rs = stmt.executeQuery();

double getDouble(String LineFtMultOcra) throws SQLException{ double retornaValor = rs.getDouble(LineFtMultOcra); return retornaValor;

}

}

solução!

Oi Rodiney,

No geral o último registro é o que possuir o maior id no banco de dados. Podemos usar essa condição para filtrar o resultado da consulta.

O código ficaria assim:

public class JDBCSelect {

    public static void main(String[] args) throws Exception { 
        Connection con = new ConnectionFactory().getConnection(); 

        //Retorna apenas a coluna LineTRT da tabela, já filtrando pelo último registro
        String sql = "select LineTRT from tabletrt where id = (select max(id) from tabletrt) ";

        PreparedStatement stmt = con.prepareStatement(sql); 
        ResultSet rs = stmt.executeQuery();

        //como vai retornar apenas um registro, nao precisa do while
        rs.next(); 
        double recebeFator = rs.getDouble("LineTRT"); 
        System.out.println(recebeFator); 

        rs.close();
        stmt.close();
        con.close();
    }
}

Oi, Rodiney.

Você poderia especificar melhor o que está tentando fazer?

Ola Leonardo Henrique O Exemplo passado pelo Rodrigo Ferreira foi a solução. Agradeço atenção, prestada.