Dúvida retorno de consulta

4 respostas
T

Boa noite pessoal,

Primeiro agradeço a sua atenção! este é o meu primeiro tópico!

Estou tentando resolver um trabalho da faculdade. A proposta é o método retornar o id do ultimo_projeto e incrementar para que eu possa saber qual é o valor do próximo valor que devo cadastrar no banco.

Fiz uma método de consulta mais ele não está retornando o valor do último id.
Testei a consulta diretamente no mysql e a consulta retorna o que desejo.

O problema é que se eu colocar o retorno dentro do try/catch ele diz que o retorno do método deve ser void se eu tirar o try ele não dá erro mais nãooo me retorna também em nada!

Esse é o meu método:

public int idUltimoProjeto() throws Exception {

Connection con = DBUtil.getConnection();

try{

ResultSet rs;

PreparedStatement consulta;
consulta = con.prepareStatement(select id from projeto order by id desc LIMIT 0,1);

rs = consulta.executeQuery();

int id = rs.getInt(id)+1;

return id;

}

catch(Exception e)

{

e.printStackTrace();

}

}


Consulta para inserir o meu ID no novo projeto

public boolean insert(Projeto projeto) throws SQLException

{

// Monta SQL

String sql01 = INSERT INTO projeto(inicio,titulo,estado,fk_professor) values;
sql01 += (;

sql01 += “’”+sdf.format(projeto.getInicio())+"’";

sql01 += ,;

sql01 += “’”+projeto.getTitulo()+"’";

sql01 += ,;

sql01 += “’”+projeto.getEstado()+"’";

sql01 += ,;

sql01 += “’”+idUltimoProjeto()+"’";

sql01 += );

Eu utilizei no fk_professor o valor consultado no método idUltimoProjeto()!

Algum profissional poderia me ajudar onde estou errando?

Obrigado!

4 Respostas

romarcio

Como vc é novo no Forum, quando postar código, use-os entre as tags Code.

Bom para retornar o último ID: select Max(id) from projeto

Para retornar o próximo ID: select Max(id)+1 from projeto

T

o problema pelo que vi não é o SQL.
É algo de código pq ele na retorna nada! tem algo errado?

romarcio

Da uma olhada nesse post, http://www.guj.com.br/posts/list/30/140808.java#759051. A parte do uso do ResultSet e Statement pode ser útil.

veverto

Qual banco vc usa? no mysql existe uma função que retorna o ultimo id(pk) de uma tabela last_insert_id() vc pode utiliza-la. Em questão do retorno null, verifica se vc não esqueceu de abrir a conexão com o banco, ele não executa e não da erro algum.

Criado 3 de maio de 2010
Ultima resposta 4 de mai. de 2010
Respostas 4
Participantes 3