Conexão com Banco de Dados - JDBC

4 respostas
E

Olá pessoal.

Estive checando vários exemplo de como conectar o java com o oracle, mas todos que testei deram problema de Heap Space.

Eu tenho uma tabela que contém cerca de 80000 registros e gostaria de trazer essas informações pra dentro de um JTable, dos exemplos que eu vi todos não suportaram esses 80000 registros.

Eu quero mesmo é um exemplo de conexão com oracle da forma mais simples e eficaz e que não dê erro de Heap Space.

Por favor me ajudem. :grin: :grin:

4 Respostas

G

Poste o código que você está utilizando!

E

Guilherme dá uma olhada.

Como eu não sei o total de registro que meu resultset irá retornar eu criei dois vetores.
O primeiro tem uma capacidade de 100000 registros e recebe os dados do resultset.
O segundo é criado com base no total de registros do primeiro e recebe todos os registros do primeiro.

Segue abaixo.

OracleDataSource dataSource;
        Connection con = null;
        Statement stmt = null;
        ResultSet rs = null;
        
        try {
            dataSource = new OracleDataSource();
            dataSource.setURL("jdbc:oracle:thin:@localhost");
            con = dataSource.getConnection("webplan", "webplan");
            stmt = con.createStatement();
            rs = stmt.executeQuery("select CRIADO_POR, TRUNCACREATION_DATE, ATUALIZADO_POR, TRUNCALAST_UPDATE_DATE, ORGANIZATION_CODE, FAMILIA_CUSTO, ITEM, CST_STD, DESCRIPTION, TIPO_ITEM, FABRICADO_COMPRADO, CROSS_REFERENCE, BUYER, PLANNER_CODE, COMM_CODE, NCNR, DESC_COMM_CODE, CATEGORY, FAM_PROD, NCM, INVENTORY_ITEM_STATUS_CODE, PREPROCESSING_LEAD_TIME, FULL_LEAD_TIME, POSTPROCESSING_LEAD_TIME, WEIGHT_UOM_CODE, UNIT_WEIGHT, ORIGEM, CLASS_ABC, FIXED_DAYS_SUPPLY, METODO_PLAN, EXCEPTION_TYPE, MODEL, WAC_BRL, WAC_USD, FIXED_LOT_MULTIPLIER, FIXED_LEAD_TIME, MINIMUM_ORDER_QUANTITY from wp_itens_jgr order by item");
            
            int col = 0;
            int row = 0;
            int totalColumn = rs.getMetaData().getColumnCount();
            Object header[] = new Object[totalColumn];
            Object lines[][] = new Object[100000][totalColumn];
            
            for (int i = 0; i < rs.getMetaData().getColumnCount(); i++) {
                header[i] = (rs.getMetaData().getColumnName(i + 1));
            }
            
            while(rs.next()) {
                while (col < totalColumn) {
                    lines[row][col] = rs.getObject(col + 1);
                    col++;
                }
                row++;
                col = 0;
            }
            
            Object data[][] = new Object[row][totalColumn];
            
            int m = 0;
            int n = 0;
            
            while (m < row) {
                while (n < totalColumn) {
                    data[m][n] = lines[m][n];
                    n++;
                }
                m++;
                n = 0;
            }
            
            con.close();
            stmt.close();
            rs.close();
            dataSource.close();
            JTable table = new JTable(data, header);
            jScrollPane1.setViewportView(table);
            jPanel1.add(jScrollPane1);
            
         } catch(Exception e) {
             System.out.println(e.getMessage());
         }
    }

Valeu pela ajuda.

E

Olá pessoal.

Será que alguém poderia me ajudar com o problema acima ?

Por favor me ajudem.

E
public class ControladorConexao {
	
	private static final String url = "jdbc:oracle:thin:(IP):1521:XE";
	private static final String driver = "oracle.jdbc.driver.OracleDriver"; 
	private static final String usuario = "tiger";
	private static final String senha ="tiger";
    
	
	
	
	public static Connection abrirConexao() throws SQLException
	{
		
		
		
		
		OracleDataSource conexao = new OracleDataSource();
		conexao.setDriverType(driver);
		conexao.setUser(usuario);
		conexao.setPassword(senha);
		conexao.setURL(url);

        
		return conexao.getConnection();
				
		
		
		  
	}
	
	   
	
}//fim da classe

Ve aí amigo !

Criado 27 de novembro de 2006
Ultima resposta 4 de dez. de 2006
Respostas 4
Participantes 3