Ler valor da ultima linha de uma tabela msyql

6 respostas
javamysql
Jederson_Andre

Boa noite galera,
Estou desenvolvendo uma aplicação de estoque em java, bem simples.
E criei um metodo que é responsavel em ler o ultimo valor de uma coluna CODIGO, porem
me retorna um valor que não é o ultimo da coluna. segue o codigo:

public int gerarCodigoNovoProd(){    
//      atributo com sql de seleção
String sql = "select CODIGO from baseEstoque.PRODUTO";
    
//      atributo que ira armazenar o ULTIMO VALOR da sequencia de produto
int ultimo = 0;
//      atriuto que ira armazenar o VALOR ATUAL da sequencia de produto
int novo = 0;
    
try {            
conexao = ConexaoDB.getconection();
stm = conexao.prepareStatement(sql);
rs = stm.executeQuery();
        
while(rs.next()){
//              capturando o valor da primeira coluna da tabela baseEstoque.produto e atribuindo ao         
atributo ultimo
ultimo = rs.getInt(1);
}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Erro ao ler sequencia de codigo do produto\n" + ex);
 } finally{
        
////          fechando a conexao com o banco de dados
//            ConexaoDB.fecharConexao(conexao, stm, rs);
    }

a intenção é pegar o ultimo valor da coluna CODIGO da tabela PRODUTO
e colocar esse valor em um JTexField.

6 Respostas

Tsuhiro23

faz um rs.last(); primeiro e tenta

pmlm

Fazer o rs.last ou correr todo o result set como ele está a fazer vão dar o mesmo resultado e nenhum deles será a maneira elegante (ou sequer irá funcionar sempre).

Tu queres o último valor ou o maior valor? Se queres o último tens de ter algum critério de ordenação, para que seja o último segundo determinada ordem. Se queres o maior, há funções em SQL que te dão isso de forma direta.

Jederson_Andre

Axo que era alguma coisa na minha tabela… eu acabei de fazer um lançamento tabela, atraves do meu sistema, e ao executar o metodo, ele conseguiu pegar o ultimo valor.
fiz com esse codigo q postei pra vcs. vai intender!!!

pmlm

Leste o que eu escrevi? Por funcionar agora não quer dizer que vá funcionar sempre. Além dessa maneira ser extremamente ineficiente, não tens garantia de ordenação já que não usas nenhum ORDER BY.

Jederson_Andre

Devo usar uma ordenção:?? como??

pmlm

Deves aprender SQL. Para este caso, em vez de ordenar, é melhor achar o máximo.

Criado 20 de novembro de 2016
Ultima resposta 20 de nov. de 2016
Respostas 6
Participantes 3