Serialização e Banco de Dados

5 respostas
zerokelvin

O código pra gravar um obj serializado é o seguinte:

Cliente cliente = new Cliente("Glaucio Guerra",'M',"[telefone removido]");

        try

        {

            //Gera o arquivo para armazenar o objeto

            FileOutputStream arquivoGrav =

                      new FileOutputStream("/Users/glaucio/Desktop/saida.dat");

            //Classe responsavel por inserir os objetos

            ObjectOutputStream objGravar = new ObjectOutputStream(arquivoGrav);

            //Grava o objeto cliente no arquivo

            objGravar.writeObject(cliente);

            objGravar.flush();

            objGravar.close();

            arquivoGrav.flush();

            arquivoGrav.close();

            System.out.println("Objeto gravado com sucesso!");

        }

Pegunta inocente: como faço pra gravar diretamente no banco? não achei nenhum exemplo…
valeu

5 Respostas

K

vc diz gravar os dados do cliente no banco de dados…
no caso em uma tabela chamada “clientes” que seja…
??

se for é só você pode usar PreparedStatement…

zerokelvin

Mas dai crio outro stream pracarregar o arquivo seto o arquivo gravado?

zerokelvin

Tipo, como eu faria pro writeObject escrever uma string ou sei lá, pra depois eu passar pro banco.
tem como?

FileOutputStream arquivoGrav =  new FileOutputStream("saida.dat");  
                     ObjectOutputStream objGravar = new ObjectOutputStream(arquivoGrav); 
                     objGravar.writeObject(((String)valor[i]));
K

na verdade, você cria uma string como o comando de inserção no bd(pode ser sql)
um exemplo no caso de cadastro de veiculos

// String do comando de inserção
String cadastraVeiculo = "INSERT INTO Veiculo (ESTADO, MARCA, MODELO, ANO, " +
            "PLACA, CATEGORIA, CHASSI, QUANTIDADEMERCADORIA, TIPOMERCADORIA, REGIAOENTREGA)" +
            " VALUES(?,?,?,?,?,?,?,?,?,?)";


//método de inserção de dados
public void cadastrarVeiculo(parametro1, parametro2, etc...) {
        try {
            //bd.conectar() é a chamada do método conectar da classe de conexão ao banco de dados
            pstm = bd.conectar().prepareStatement(cadastraVeiculo);

            pstm.setString(1, parametro1);
            pstm.setString(2, parametro2);
            pstm.setString(3, parametro3);
            pstm.setInt(4, ...);
            pstm.setString(5, );
            pstm.setString(6, );
            pstm.setString(7, );
            pstm.setInt(8, );
            pstm.setString(9, );
            pstm.setString(10, );

            pstm.executeUpdate();
            bd.desconectar();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
zerokelvin

Valeu cara, resolvi aqui!

Criado 8 de maio de 2010
Ultima resposta 9 de mai. de 2010
Respostas 5
Participantes 2