Fotos na base de dados!

Pessoal,
Particularmente sempre utilizei o salvamento das imagens em disco.

A questão do facilidade de fazer backup que o colega mencionou é facilmente resolvida pela realização do backup na pasta onde estão as imagens, inclusive acredito que essas imagens no banco tendem a deixar o backup do banco bem maior e bem mais demorado também.

Essa questão é bastente polêmica, inclusive já conversei com vários DBAs e todos são a favor de um banco de dados mais enxuto, pois quanto maior a tabela, mais demorado o acesso a ela (Até rimou, heheheh).

Essa é minha opnião, mas sempre disposto à discussão.

… e ainda insistem em best practices hehe

Depende do caso, simples assim :smiley: Em um deles as imagens eram apenas fotos 3x4 com menos de 5kbs. Para que o trabalho de backups de diretórios se podia evitar?

Usar “mais lento” e “mais rápido” sem apoio de tabelas e gráficos é bobeira [uma que me pego fazendo várias vezes].

[quote=pcalcado]
Swing de uma maneira geral é pouco utilizado (mas issoe stá relativamente mudando…) e quemf az Swing para aplicações desktop veio do Delphi/VB e está acostumado com C/S.

Aplicações feitas por pessoas experientes em java e/ou arquiteturas de sistema distribuídos dificilmente vão mantêr duas Camadas apenas. O Swing é só uma interface gráfica, ela não deve processar nada idealmente (ocasionalmente processa, até apra aproveitar o poder das máquinas atuais).[/quote]

[querendo_aprender]

duas observações:

  • Quando você diz que Swing é pouco usado por programadores Java, e sim por programadores oriundos de outras linguagens, me dá a impressão de que swing é um pouco marginalizado… e que esses muitos programadores Java dão preferência a outras abordagens (cliente Web) em sistemas desktop quando poderiam usar swing.
    O fato de usar ou não swing, é claro, é dependente da necessidade - muitas vezes interfaces baseadas em html, xml, etc. resolvem o problema - mas também é possível utilizar GUI’s Swing e fazer a comunicação via http com servlets em um ambiente local (intranet, por exemplo), certo?
    Não estou querendo com isso promover Swing … mas vejo que em uma situação em que as duas abordagens são igualmente aplicáveis, swing é a última opção da maioria…
    Por quê isso ocorre? É pelo fato de Swing ser - segundo alguns - mais complicado?

  • Outro ponto que me fez refletir… quando você fala em camadas, está falando de camadas físicas, certo?
    Por exemplo: ao citar que swing não deve processar nada, você quer dizer que a camada lógica de apresentação não deve ter código com regras de negócio, é isso mesmo?
    Exemplo: Nesse esquema de C/S, eu cotumo criar uma classe para apresentação (UI), outra para processar regras de negócio, outra para fazer a persistência dos objetos… a UI em swing não processa regras de negócio…enfim, separo em camadas lógicas (bem, eu acredito que seja isso mesmo).
    A questão é que tudo isso fica em um único arquivo .jar, na parte cliente do esquema C/S.
    Ou seja… nem sempre em um esquema C/S, Swing vai estar (efetivamente) processando regras de negócio… ou considera-se que está, por estar tudo dentro de um único .jar?
    Em arquiteturas distribuídas essas camadas lógicas costuma ficar separadas em camadas físicas também, certo?

[/querendo_aprender]

[]'s

Oi,

Uma interface Swing é (para a maioria, pelo menos) mais complexa que uma interface web. Geralmente dispomos de linguagens específicas apra interfaces Web, seja HTMl, Flash ou algo do tipo, em Swing temos que usar java.

Java é uma ótima linguagem mas não é a melhor apra tudo e eu pessoalmente acredito que para descrever interfaces é péssima.

Construir uma interface web então acaba sendo mais rápido, simples e produtivo. Sempre é assim? Não. Muitas vezes precisamos de algo que HTML e/ou Flash não suporta. Quem tem aversão á Swing acaba fazendo mil e uma gambiarras para driblar as limitações.

Sim, como dito, mas usar HTTP para comunicar Java com Java geralmente é uma complexidade desnecessária, RMI pode ser uma opção bem melhor.

Neste contexto sim, tiers.

No Mundo Perfeito™, código Swing (JFrame, JButton, Listener, blablabla) não deve processar nenhuma regra de negócio, deve delegar para a Camada Lógica (Layer) de Negócio que pode estar na mesma Camada Física(Tier) ou não, tanto faz.

Ok.

Como falei acima não, empacotamento (quantos Jars, wars, ear você tem) não diz sobre Camadas, apesar de uma organização neste ajudar muito na coesão do sistema e reduzir dependências.

Não necessariamente. Você pode ter tudo na mesma Camada, cada uma em uma Camada, várias em uma… a organização que fizer mais sentido.

Com 2 Camadas Físicas apenas você tem um problema porque sua regra d enegócio está replicada em todos os clientes. O ideal é que você mantenha o que é comum centralizado e o que é específico na máquina do cliente.

As regras de negócio são comuns á todos, por exemplo, mas o estado da interface é específico de cada usuário. A solução é isolar a regra de negócio numa Camada Física que é acessada pelso usuários que possuem a Camada Lógica de Apresentação implementada como uma aplicação Swing.

Muito obrigado !!!

:thumbup:

Pessoal, seguinte…

Eu particularmente prefiro salvar somente o endereço do arquivo no banco de dados.

Porém é o seguinte, somente foi demonstrado aqui como salvar o arquivo no banco, esqueceram de exlicar o procedimento pra armazenar somente o endereço do arquivo.

Se alguém puder me mostrar o caminho, ficarei muito agradecido.

todo mundo falou falou, mas ninguém respondeu a pergunta do sujeito.

Ola algum de vcs pode me ajudar nesse topico

http://www.guj.com.br/posts/list/112894.java ???

Obrigado

boas!!! a minha duvida e identica, Pois eu tambem acho que se deve copiar tudo para um directorio na pasta do exe, indentifica-lo da forma que quisermos e guardar o caminho, mas o meu problema e que estou a usar o copyfile, mas o programa nao copia, sera que me podem postar um exemplo de um programa que funcione com o copyfile?

Agradeço que me ajudem se faz favor.

Galera desculpa atrapalhar a discussão de vocês…

auuhuhuhauahuahuhuahuhauhauhahuhauauhauah

Mas eu quero fazer uma pergunta.

Viu, como eu pego de uma foto através de FileChooser, e em seguida coloco em um panel com o título “foto do aluno”, dai clico em um botão gravar, dai sim grava essa imagem no banco de dados???/

Então pessoal, ninguém?
uahauh :?