Capturar a saída de uma Query

8 respostas
J

Pessoal, preciso pegar o valor ou saída de um Select e passar para uma variavel, mas não estou sabendo como.

O Select é: “SELECT MAX( PES_ID) FROM PESSOA ORDER BY PES_ID DESC”

Isso vai me retornar o último valor do campo PES_ID (valor é inteiro).

Sds.

Julio.

8 Respostas

victor.godinho

Kara,

Te aconselho a dar uma olhada no tutorial de JDBC do GUJ.

Mas, dando uma prévia (copy&paste do tutorial), o caminho é por aqui:

Class.forName("com.mysql.jdbc.Driver");

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/BANCO_DE_DADOS?user=root&password=root");   
Statement stm = conn.createStatement();   
ResultSet rs = stm.executeQuery("SELECT MAX( PES_ID) FROM PESSOA ORDER BY PES_ID DESC");  

if (rs.next()) {
     int quantidade = rs.getInt(1);
}

Abraços

luciano2

Passar para uma variavel onde?

Na aplicação , dentro de uma procedure ?

Qual o banco que vc usa?

J

Victor, muito obrigado pela dica, muito legal tambem o tutorial.
Eu estou fazendo alguns exercícios para aprender a trabalhar com o Java, venho do Clipper que é bem diferente, tenho estudo o conceito de orientação ao objeto e pretendo mudar um sistema da empresa passando para o Java.
Mas com a sua dica deu certinho e ja estou concluindo a parte de gravar no banco. Agora vou começar a parte da consulta, voce tem alguma sugestão sobre como eu faço pra consultar?

Abraço.

J

Olá Luciano, Estou desenvolvendo uma aplicação muito simples para eu poder aprender um pouco do Java, estou usando o PostgreSQL.
Montei uma tela (que peguei de exemplo num forum) e adaptei pra digitar os dados (tres campos) para poder entao conectar e gravar esses dados. Aí eu queria pegar o último ID (que é chave primaria) + 1 para o próximo registro a ser inserido, com a finalidade de nao se deixar o usuário repetir ou pular o ID. Mas aproveitei a dica do Victor e já consegui resolver isso, agora tenho que pegar algumas dicas para poder fazer a consulta, tipo por nome.

Abraço.

Julio.

luciano2
Se a consultar for feita via sql você só vai ter que adicionar os parametros na query. Eu te aconselho a utilizar o preparedStatment para setar os parametros.
String query = "Select * from usuario where nome = ?"

PreparedStatement prst = con.prepareStatement(query); 

prst.setString(1, usuario.getNome()); 

rst = prst.executeQuery();

con é a sua variavel Connection,
o caracter "?" é o bind usando para setar os parametros, você pode usar vários na query é depois utiliza os métodos set do PreparedStatment para substitui-los,
no método setString 1 é o indice do bind onde vai ser inserido o valor.

J

Luciano, muito obrigado pela explicação, eu usei e resolvi o problema.

Agora estou com uma dúvida: pego um dado do Oracle campo data e jogo num JLabel, só auq aparece a data no formato yyyy-mm-dd e (hora) junto. Voce saberia como colocar só a data e no formato dd/mm/yyyy???

Sds.

Julio.

luciano2

Você pode até no seu select converter a data para o padrão dd/mm/yyyy, mas mesmo assim a hora vai ficar no objeto date.

O interessante é que você usar um SimpleDateFormat quando for exibir sua data.

SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy"); String data = formato.format(sua data);

para mais informações pesquise no site abaixo:
http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html

J

Luciano, Não sei como converter a data no select, mas me orientei no exemplo que voce passou e deu certo.

Valeu pela dica, muito obrigado.

Julio.

Criado 28 de maio de 2010
Ultima resposta 1 de jun. de 2010
Respostas 8
Participantes 3