Problema Pra Trazer Id Do banco

9 respostas
colored

Bom To fazendo um metodo, aki pra trazer o maior id do banco pra setar na aplicação. mas ta dando uns problemas queria saber c alguem sabe como me ajudar…

@Override
	public Integer TrazerId() throws SQLException {
	Material mat = new Material();
	int Meuid = 0;
	String sql = "Select Max(mat_cat_codigo) from Material";
	PreparedStatement ps = c.prepareStatement(sql);
	ResultSet rs = ps.executeQuery();
	if(rs.next()){
		mat.setId(rs.getLong("mat_cod_codigo"));
	}
	Meuid = (int) mat.getId();
	
	return Meuid;
	}

tipo meu metodo ai mas axo q ele n ta trazendo um int pelo jeito q ta dando erro,
Se der pra ajudar valeu.

9 Respostas

rpfragoso

Qual é o erro que ele está dando?

rpfragoso
mat.setId(rs.getLong("mat_cod_codigo"));

Você quer int ou long?

colored

Era Long, será q eh isso?

Ah dei uma brisada xo tenta arruma

colored

Eu tinha feito um metodo q tinha dado certo, agora sei la oq deu kkk…

@Override
	public long TrazerId() throws SQLException {
	Material mat = new Material();
	long Meuid = 0;
	String sql = "Select Max(mat_cat_codigo) from Material";
	PreparedStatement ps = c.prepareStatement(sql);
	ResultSet rs = ps.executeQuery();
	if(rs.next()){
		mat.setId(rs.getLong("mat_cod_codigo"));
	}
	
	Meuid = Long.valueOf(mat.getId());
	
	return Meuid;
	}

Nem setando no txt n tah mais

Erro eh esse aki

org.postgresql.util.PSQLException: A nome da coluna mat_cod_codigo não foi encontrado neste ResultSet.
	at org.postgresql.jdbc2.AbstractJdbc2ResultSet.findColumn(AbstractJdbc2ResultSet.java:2465)
	at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getLong(AbstractJdbc2ResultSet.java:2332)
	at Persistencia.PgMaterialDAO.TrazerId(PgMaterialDAO.java:139)
	at Controller.Start.SetarId(Start.java:142)
	at Controller.Start.<init>(Start.java:24)
	at Controller.Start.main(Start.java:122)
g4j

Hmmm… vc não definiu um nome para a coluna. Quando vc usa max(algo) esse algo não será o nome da coluna retornado

tente

mat.setId(rs.getLong(1));

colored

Por exemplo qdo eu minha query eh tipo select * from bla bla…

Funciona mas agora eu preciso trazer so esse id, sempre fiz desse jeito n sei pq n funfa.

g4j

g4j:
Hmmm… vc não definiu um nome para a coluna. Quando vc usa max(algo) esse algo não será o nome da coluna retornado

tente

mat.setId(rs.getLong(1));

tentou??

ou então faz isso:

Select Max(mat_cat_codigo) as maxMAtCatCodigo from Material"

ai pega assim:

mat.setId(rs.getLong("maxMAtCatCodigo");

colored

Esse max deu nos nervos jah…
x)

Fiz com Order By Mesmo Pelo Menos Funciona kkkkk…

Valeu a Ajuda

g4j

Não entendo como um order by resolveria…

Criado 15 de agosto de 2008
Ultima resposta 15 de ago. de 2008
Respostas 9
Participantes 3