Erro na consulta ao banco , arrayindexoutofbounds

6 respostas
P

amigos,

em meu banco tenho cadastrado tipos como string, integer e float.

Porem, na hora que faço a consulta no banco, tanto pelo hibernate como por meio convencional sempre retorna esse erro:

query = select * from CONTAS where CODIGOCONTA =111
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 6
        at org.gjt.mm.mysql.ResultSet.getDouble(ResultSet.java)
        at org.gjt.mm.mysql.ResultSet.getDouble(ResultSet.java)
        at org.gjt.mm.mysql.ResultSet.getFloat(ResultSet.java)
        at org.gjt.mm.mysql.ResultSet.getFloat(ResultSet.java)

esse erro so acontece quando retorna do banco valores como “4.25”, “1.25” … banco de dados MySQL …

minha consulta é assim:

public void ConsultarConta(objconexao con)
	{
	        try
		{
			String query = "select * from CONTAS where CODIGOCONTA ="+getCodigoConta();

			ResultSet hsyRS = con.stmt.executeQuery(query);
			boolean ExisteDados = hsyRS.next();
			if (ExisteDados)
			{
				setCodigoConta(hsyRS.getInt("CODIGOCONTA"));
				 setDescricaoConta(hsyRS.getString("DESCRICAOCONTA"));
				setValorConta(hsyRS.getFloat("VALORCONTA"));
				setMultaPorcMes(hsyRS.getFloat("MULTAPORCMES"));
							}
		}	
		catch(SQLException e)
		{
			//ArqLog.IncluirLog(con,6,"BD:"+e);
		}
	}

se eu troco esse valor de float pra double tb ocorre o mesmo erro, pq?

6 Respostas

B

Ola,

Estranho… mas diz ae qual driver vc tá usando, e qual linha exatamente esta ocorrendo o erro…

P

cara,

to usando o driver mm.mysql-2.0.1-bin.jar …

e ta dando erro nas linha

setValorConta(hsyRS.getFloat(“VALORCONTA”));
setMultaPorcMes(hsyRS.getFloat(“MULTAPORCMES”));

sera que o driver tem algo haver?

S

Por acaso alguma de suas variáveis é um Array ? esse erro acontece quando vc está tentando acessar uma referencia que não existe em um array.

P

nao amigo,

nenhum de meus atributos sao array .

no banco esta como float, na classe esta como float tb…

na hora que o resultset recebe valor como “1” , ele funciona perfeitamente, mas na hora que o resultset recebe valor como “1,25” da esse erro, mesmo sendo declarado como float, ou como double, qualquer tipo de declaraçao desse tipo decimal.

nao sei se tem algo haver com o conector mysql, mas mesmo assim vou substituilo amanha…

no banco esta como Float(3,2), sera que tem algo haver com isso?

B

“pdioniziofilho”:
cara,

to usando o driver mm.mysql-2.0.1-bin.jar …

e ta dando erro nas linha

setValorConta(hsyRS.getFloat(“VALORCONTA”));
setMultaPorcMes(hsyRS.getFloat(“MULTAPORCMES”));

sera que o driver tem algo haver?


Po, tenta atualizar o driver… talvez seja um bug ja resolvido para as versoes atuais…

P

amigos,

erro solucionado,

apenas coloquei um conector mais recente! :grin: :grin:

obrigado aos que ajudaram.

Criado 1 de março de 2007
Ultima resposta 2 de mar. de 2007
Respostas 6
Participantes 3