| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/10/2002 13:58:15
|
Administrador
Java Eldar
Membro desde: 02/08/2002 12:27:02
Mensagens: 0
Offline
|
Assunto: Aprenda a usar o PreparedStatement para retirar todo código SQL do seu código java, e separá-lo em um arquivo de configuração. Além de uma boa prática, você não precisará mais recompilar o seu código quando necessário mudar pouca coisa de uma SQL.
Você pode ler este artigo na íntegra http://www.guj.com.br/java.artigo.115.1.guj
Por favor, coloque os seus comentários sobre este artigo aqui.
This message was edited 1 time. Last update was at 19/07/2005 21:15:56
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/10/2002 23:18:29
|
Rafael Steil
Administrador
![[Avatar]](/images/avatar/8e296a067a37563370ded05f5a3bf3ec.jpg)
Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline
|
Uma dica se alguem for quer usar LIKE: faca o sql
e para atribuir o valor faca
ou seja, passe as "%" pelo setXXX ao inves de colocar direto no sql
[]'s
Rafael Steil
|
"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"
http://rafaelsteil.com
http://twitter.com/rafaelsteil
http://www.jforum.net
http://www.flickr.com/photos/rafaelsteil |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/10/2002 01:50:27
|
danieldestro
Moderador
![[Avatar]](/images/avatar/a5bfc9e07964f8dddeb95fc584cd965d.png)
Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline
|
Me parece legal a solução de se tirar o SQL do código, porém seria uma solução um pouco pesada, digo, pode causar overhead no processamento e acesso ao arquivo de configuração das queries.
Uma solução seria carregar as queries em um Properties e acessar da memória, o que pode causar muito uso de memória ainda. E mesmo assim teria de haver um sistema de atualização das queries, caso fossem alteradas nos arquivos de configuração.
|
gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/10/2002 09:23:56
|
Paulo Silveira
Administrador
![[Avatar]](/images/avatar/a87ff679a2f3e71d9181a67b7542122c.jpg)
Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline
|
danieldestro wrote:
Uma solução seria carregar as queries em um Properties e acessar da memória, o que pode causar muito uso de memória ainda. E mesmo assim teria de haver um sistema de atualização das queries, caso fossem alteradas nos arquivos de configuração.
isso ja acontece, por isso tem o singleton la! pra ler soh uma vez.
quanto a reler o arquivo, depende do seu uso. no meu caso e maioria dos casos ninguem fica mudando sql em tempo de execucao!
|
http://blog.caelum.com.br twitter: @paulo_caelum
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/10/2002 13:16:22
|
FABIO ALCANTARA
Smalltalk
Membro desde: 31/10/2002 12:13:29
Mensagens: 1
Localização: I'm from Brasilia-Brazil but current living in Munich - Germany
Offline
|
Estou construindo uma aplicação para acessar o Sybase IQ, front end de uma grande aplicação com tabelas de mais de 100 millhoes de registros estou seguindo uma orientação da Sun para utilizar EJB Entity BMP. Então são várias consultas parametrizadas, neste caso eu achei interessante essa idéia e gostaria de unir a duas, mas tenho uma duvida, pois tenho que montar a query dinamicamente, de acordo com os parâmetros passados, tem aplicação que posso ter até 20 parâmentros diferentes sem alguem tiver alguma idéia....
Outra pergunta se eu usar o PreparedStatement
Ex.: select campo from tabela where campo1= ? and campo2= ? and ....
Sou obrigado a passar todos os parâmetros?? E se eu passar apenas o primeiro parametro a query ficaria de que forma?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/11/2002 21:35:43
|
DanielOliveira
Entusiasta Java
Membro desde: 01/09/2002 11:05:38
Mensagens: 22
Localização: Cuiabá-MT/Brazil
Offline
|
Paulo, mas uma vez parabens pela excelente materia, eu programo já algum tempo em java e nunca havia tentado fazer isto ( isolar querys ), fica muito bom para manutencao e melhor ainda para portar para outras bases de dados, olhe que demo interessante eu fiz usando esta tecnica mais um pouco de minha experiencia juntando FLASH+SERVLET+SQL.
www.paxdrogaria.hpg.com.br
um abraco.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/11/2002 02:01:21
|
Paulo Silveira
Administrador
![[Avatar]](/images/avatar/a87ff679a2f3e71d9181a67b7542122c.jpg)
Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline
|
Olá Daniel. Fico contente com seus elogios e isso incentiva a mim e todos os outros do GUJ.
A pagina aqui abriu soh uma vez, e travou. Dei reload e ele está tentando conectar na porta 1000 de um IP (o seu ip?), mas sem sucesso.
Alias, se voce quiser escrever um artigo sobre o Flash acessando http, no caso uma servlet e tal, seria MUITO legal para todos!
|
http://blog.caelum.com.br twitter: @paulo_caelum
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/11/2002 02:12:59
|
DanielOliveira
Entusiasta Java
Membro desde: 01/09/2002 11:05:38
Mensagens: 22
Localização: Cuiabá-MT/Brazil
Offline
|
Oi Paulo, desculpe eh porque esta pagina eh um modulo que faz parte de um projeto maior , eu ainda estou fazendo algumas alteracoes só esta no ar de vez enquando para teste se quiser eh so me avizar a hora que vc quizer ver e eu deixo ela carregada, pode mandar um email danieloliveira2002@hotmail.com ou ligar 65 9998 6066 e eu deixo ok.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/12/2002 13:52:03
|
dango
JavaEvangelist
![[Avatar]](/images/avatar/c8a19a6140e2e852b3f66.gif)
Membro desde: 09/11/2002 08:56:47
Mensagens: 497
Localização: Catanduva SP
Offline
|
Não quero ser rude, mas todo mundo que deseja desenvolver em Java precisa saber o que é um singleton. Li sobre o assunto e me parece que, na verdade, existem inúmeras situações em que singletons deixam de atuar como singletons (onde se pode criar mais de uma instância da classe -- que deveria ser um singleton). É um assunto bastante extenso e bem interessante.
Estou estudando Java há mais de um ano e gostaria de saber por que o autor diz que, uma classe que contém apenas métodos estáticos ocasiona o que ele chamou de "perda da OO"? Fico confuso por que a classe contém apenas métodos e campos estáticos.
Sobre o artigo, é excelente![/code]
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/12/2002 16:01:42
|
Paulo Silveira
Administrador
![[Avatar]](/images/avatar/a87ff679a2f3e71d9181a67b7542122c.jpg)
Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline
|
Creio que não haja a necessidade de alguem saber o que é o singleton, quando se começa a programar em java. Mais para a frente pode ficar essencial, assim como multiton e factories.
Quando você tem uma classe só com métodos estáticos você perde OO, é por causa do seguinte:
Você não pode instaciar essas classes porque normalmente o construtor delas é privado. Você não pode usar polimorfismo com elas porque, ou você não tem como criar instâncias delas, ou elas derivam diretamente de Object e são final. Com isso, você já não mexe mais com objetos, mas sim com procedimentos: taí a conclusão, a programação vira procedural!!!
Dois casos clássicos são a java.lang.System e Math. Só tem atributos e métodos estáticos, com isso, você nunca poderá passar uma instância da Math como parâmetro. Faz de conta que existe a matemática normal e a booleana, e você quer decidir qual usar em runtime, com este "approach", de apenas métodos estáticos, você teria de usar reflection para mudar a classe escolhida: péssima escolha.
Existem casos que é legal você definir a classe a ser usada como argumento, mas na maior parte dos casos é interessante você mandar uma instância.
Creio que eu embaralhei você mais ainda, vou escrever algo sobre Singleton logo logo....
|
http://blog.caelum.com.br twitter: @paulo_caelum
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/12/2002 16:34:08
|
dango
JavaEvangelist
![[Avatar]](/images/avatar/c8a19a6140e2e852b3f66.gif)
Membro desde: 09/11/2002 08:56:47
Mensagens: 497
Localização: Catanduva SP
Offline
|
Não, ok!
Eu imagino apenas que, dependendo do problema que se deseja resolver, seja prático você criar um ou mais métodos (que sejam extremamente necessários, mas que não se enquadram em nenhum outro contexto) como métodos estáticos dentro de uma classe que não tenha um construtor explicitamente declarado.
Só para reforçar a idéia, -- e quem trabalha com desenvolvimento de software em empresas que não são do ramo (como um atacadista ou uma indústria de beneficiamento por exemplo) sabe do que eu estou falando -- muitas vezes os desenvolvedores são exortados a resolver um problema extremamente difícil que envolva cálculos complexos (já aconteceu comigo) em um tempo extremamente curto; daí você desenvolve uma ou mais classes para resolver o problema e 2 ou 3 métodos de cálculo simplesmente não se enquadram no contexto das demais classes criadas (ou das existentes)...; eu implementaria esses métodos numa classe separada como métodos estáticos -- todos em um pacote específico para a solução do problema.
Acho que, se a solução for bem projetada e as premissas de acesso à dados da OO não forem quebradas, não há mal algum em usar todas as possibilidades da linguagem -- como a Sun fez com o java.lang.Math.
(Ah, valeu pela resposta a jato!)
Abraços.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/12/2002 09:51:13
|
anjomal
JavaEvangelist
![[Avatar]](/images/avatar/25b2822c2f5a3230abfadd476e8b04c9.jpg)
Membro desde: 12/12/2002 16:50:25
Mensagens: 362
Localização: Luanda/Angola
Offline
|
Perguntinha de iniciante, como esta o conteudo do arquivo querymysql.txt,
e como a classe sabe como encontrar as consultas.
por acaso esta assim:
ADICIONA_FULANO = INSERT * FROM tbfulano (?,?,?,?)
desculpe a perguntinha besta ...
|
Anjo Mal é William Jammes de Oliveira
Somos oque repetidamente fazemos. A excelência, portanto, não é um feito. mas um hábito.
Aristóteles
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/12/2002 12:05:15
|
Paulo Silveira
Administrador
![[Avatar]](/images/avatar/a87ff679a2f3e71d9181a67b7542122c.jpg)
Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline
|
fica desse jeito mesmo!
para ela ler deste arquivo, utilize um objeto da classe java.util.Properties
|
http://blog.caelum.com.br twitter: @paulo_caelum
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/12/2002 13:47:37
|
anjomal
JavaEvangelist
![[Avatar]](/images/avatar/25b2822c2f5a3230abfadd476e8b04c9.jpg)
Membro desde: 12/12/2002 16:50:25
Mensagens: 362
Localização: Luanda/Angola
Offline
|
Da pra dar so uma canja de como eu uso essa classe ....
Obrigado pela resposta !!!!
|
Anjo Mal é William Jammes de Oliveira
Somos oque repetidamente fazemos. A excelência, portanto, não é um feito. mas um hábito.
Aristóteles
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/12/2002 08:37:34
|
Edu
Thread.start()
![[Avatar]](/images/avatar/c8a14bae3df733581d4c7.jpg)
Membro desde: 18/09/2002 14:08:08
Mensagens: 45
Localização: São Paulo / Brasil
Offline
|
|
|
|
 |
|
|