Sou novo em desenvolvimento com java, e gostaria de saber como solucionar o problema do codigo abaixo.
Tenho uma string no banco(oralce) em formato clob, e estou separando os pares de coordenadas delimitada por ";’. Ao chegar em uma determinada posição no for e apresentado a mensagem abaixo:
java.lang.ArrayIndexOutOfBoundsException: 25683
Segue o codigo:
Metodo mein
/*
- To change this license header, choose License Headers in Project Properties.
- To change this template file, choose Tools | Templates
- and open the template in the editor.
*/
package quebar.linha;
import java.sql.SQLException;
import java.util.Arrays;
public class QuebarLinha {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws SQLException {
Conexao cn = new Conexao();
String retorno;
retorno=cn.PesquisarUsuario();
System.out.println("Quantidade " +retorno.length());
for ( int r =0;r<retorno.length()-1;r++){
int cont =r;
String[] dados ;
dados=retorno.split(";");
if(dados[r]!=" "&&dados[r]!=null)
System.out.println("Contador"+cont);
System.out.println("Vai para o banco "+dados[r]);
//cn.inserir(dados[x], x);
}
}
}
Classe que conecta no banco:
package quebar.linha;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Conexao {
private Connection conexao;
public Connection getConnection(){
try{
Class.forName(“oracle.jdbc.OracleDriver”);
conexao = DriverManager.getConnection( “jdbc:oracle:thin:@S333-PRODABEL:1521:HML001”,“ARTERH_PBH”,“arte”);
System.out.println("Conectado Ao banco ");
}
catch(ClassNotFoundException | SQLException e){
System.out.println("erro ");
}
return conexao;
}
public String PesquisarUsuario() throws SQLException{
conexao = getConnection();
String dados;
String selecao ="SELECT lista FROM teste_regional where id =2 ";
Statement stm;
stm= conexao.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet rs=stm.executeQuery(selecao);
rs.first();
dados=rs.getString(1);
return dados;
}
public void inserir(String dados,int contador ){
String selecao ="insert into bh(lista,id)values(?,?)";
Statement stm;
try {
PreparedStatement stmt = conexao.prepareStatement(selecao);
stmt.setString(1,dados);
stmt.setInt(2,contador);
stmt.execute();
stmt.close();
} catch (SQLException ex) {
ex.printStackTrace();
Logger.getLogger(Conexao.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Desde já agradeço
- Item da lista