Gravar arquivos no Banco de Dados

5 respostas
F

Gostaria de uma ajuda do pessoal com um pouco mais de experiência…

No meu BD (MySQL) tenho duas tabelas:

  • contato -> id, nome, email, endereco, login, senha
  • arquivos -> principal, imagem, estilo, banner

Tive dúvidas na hora de criar a tabela arquivos, então fiz assim e deu certo:
CREATE TABLE ‘arquivos’ (‘principal’ BLOB, ‘imagem’ BLOB, ‘estilo’ BLOB, ‘banner’ BLOB)

-> Principal é um arquivo html
-> imagem é um jpg
-> estilo é um css
-> banner é um swf

Minha tabela contato é assim:
create table ‘contatos’ (id BIGINT NOT NULL AUTO_INCREMENT, nome VARCHAR(50), email VARCHAR(30), endereco VARCHAR(50), login VARCHAR(12), senha VARCHAR(8),
primary key (id)
)

Eu tenho um formulário que é enviado para a classe “adicionaArquivos” que deve adicionar estes quatro arquivos na tabela arquivos, mas manter uma referência ao contato que o adicionou…

1 - Sei que para isso o meu campo “id” da tabela “contatos” precisa ser uma chave estrangeira na tabela “arquivos” mas não sei como fazer isso!!!
2 - Gostaria de saber se o sql que criou minha tabela de arquivos está correto, com aqueles campos, todos sendo do tipo BLOB.
3 - Gostaria então, se alguém se dispor a me ajudar, que mostrasse como ficaria o comando SQL para adicionar os quatro arquivos no banco fazendo a referência ao id do contato que realizou a gravação dos arquivos…

Obrigado a todos que puderem me ajudar!!!

5 Respostas

F

Subindo a mensagem…

Vou mais direto ao ponto…

Que comando SQL eu uso para inserir arquivos em um Banco de Dados MySQL?

A tabela está na mensagem acima…

Obrigado!

acdesouza

SQL:

"insert into arquivos values(?, ?, ?, ?)"

É sério… O site JavaExamples tem um tutorial de uso de campos Blob com JDBC. Dá uma olhada lá e veja se te atende.

A questão não é o sql, mas o tipo de parâmetro que você irá adicionar no PreparedStatement. No caso de Blobs é o setObject().

H

Quando você especifica INTO no comando SQL , você está querendo dizer que todos os atributos serão utilizados nesta INSERT , no caso na tabela a 6 colunas e está sendo passado somente 4 colunas. Deverá ocasionar em algum erro quando compilar.

acdesouza

Você não está confundindo com a tabela contato, não? A tabela arquivos tem 4 campos, mesmo. :?

Outra coisa, SQL, em Java, não dá erro de compilação, só de execução. :wink:

F

Vou dar uma olhada no material indicado… estou cheeeiooo de dúvidas quanto a isso…

Depois posto elas, quando tiver uma dúvida definida, e não uma dúvida vaga como tenho agora…

Porque quero receber algumas informações do cliente através de um formulário. Com estas informações eu quero alterar os arquivos html, css, swf que tenho e então registrar esses arquivos na minha base de dados, tendo uma referência com a tabela contatos para mim saber de quem são aqueles arquivos…

Bom vou estudar…

Obrigado…

Criado 12 de outubro de 2007
Ultima resposta 17 de out. de 2007
Respostas 5
Participantes 3