Mensagens enviadas por: JackPJ
Índice dos Fóruns » Perfil de JackPJ » Mensagens enviadas por JackPJ
Autor Mensagem
http://www.eatj.com

Pode fazer restard do tomcat quando desejar. Tem um plano trial pra testes. E o plano mais barato com 500MB de armazenamento e 30GB de transferência custa apenas US$6,85
Uma transação é uma unidade de trabalho que pode compreender uma ou mais operações SQL. Normalmente cada operação SQL é executada e a mudança é comprometida (tornada permanente) no banco de dados, exatamente depois da declaração SQL ser executada.

Porém, em alguns casos, um conjunto de operações SQL precisa ser bem sucedido, ou falhar, como um todo. Se uma das declarações SQL falhar, as outras declarações SQL no grupo também precisam ser retornadas. Considere o seguinte cenário.

Em uma loja on-line, um cliente compra vários livros. Quando o cliente sai e paga, usando um cartão de crédito, as seguintes coisas podem acontecer:

1- Um registro precisa ser acrescentado à tabela Orders, especificando o pedido, incluindo o endereço de entrada e os detalhes de cartão de crédito. Essa operação resulta em um Orderid usado para identificar cada item na tabela OrderDetails.
2- Um registro precisa ser inserido na tabela OrderDetails para cada item de compra. Cada item é vinculado à tabela Orders, usando o valor OrderId retornado pela operação SQL anterior.

Agora, se tudo correr suavemente, ambas as declarações SQL serão executadas com sucesso no banco de dados. Porém, as coisas podem sair erradas. Digamos, por exemplo, que a primeira operação foi comprometida com sucesso, mas a segunda declaração SQL falhou. Nesse caso, os detalhes de pedido são perdidos e o cliente não obterá nada. O cartão de crédito do cliente será debitado com a quantia da compra, no entanto, pois um registro é acrescentado à tabela Orders.

Nesse caso, você quer que ambas as declarações SQL sejam bem sucedidas ou falhem, como um todo. Isso pode ser feito usando uma transação. Quando há uma transação que falhou, você pode notificar o cliente, para que ele, ou ela, tente novamente.

Por padrão, a posição de auto comprometimento do objeto Connection é verdadeira, significando que o banco de dados é atualizado quando uma declaração SQL é executada. Se você quiser agrupar um conjunto de declarações SQL em uma transação, primeiro precisará dizer ao objeto Connection para não atualizar a mudança até que ele seja explicitamente notificado a faze-lo. Isso pode ser feito chamando o método setAutoCommit e passando falso como seu argumento, como a seguir:



Depois, você pode executar, normalmente, todas as declarações SQL no grupo, usando os métodos executeQuery e updateQuery. Depois da última chamada ao método executeQuery ou updateQuery, você chama o método commit do objeto Connection, para tornar as mudanças de banco de dados permanentes, assim



Se você não chamar o método commit dentro de um tempo específico, todas as declarações SQL serão retornadas depois de chamar o método seAutoCommit. Alternativamente, você pode retornar explicitamente a transação, chamando o método rollback do objeto Connection:



trecho estraído do livro "Java para a Web com Servlets, JSP e EJB" - Autor Budi Kurniawan - Editora Ciência Moderna
método que retorna um collection

public Collection obterIncidentesOcorridos(String local){
ConectaBanco con = new ConectaBanco();
ResultSet rs = null;

Collection result = new ArrayList();
try{

rs = con.stm.executeQuery("select i.cod_incidente, i.data_incidente from incidente i, funcionario f where f.matricula = i.matricula_fk and f.local = \""+local+"\" and status_incidente = 'ocorrido'");

while (rs.next()){
Incidente incidente = new Incidente();
incidente.setCodIncidente(Integer.parseInt(rs.getString("cod_incidente")));
incidente.setDataIncidente(rs.getTimestamp("data_incidente"));

result.add(incidente);
}
}catch (SQLException e){

}

return result;
}

trecho do código que pega os dados do collection

if (resultIncidente.size()>0){
Iterator it1 = resultIncidente.iterator();
while (it1.hasNext()){
Incidente listaIncidente = (Incidente)it1.next();
funcionario = funcionario.obterDadosFunc(listaIncidente.getFuncionario().getMatricula());

...
como faço pra fazer no bd uma pesquisa por um campo sem ter os dados completos. Por exemplo:

no bd tem um campo com os conteudos

cadeira branca
cadeira amarela
mesa preta
mesa branca
mesa vermelha
cadeira azul
boa verde

como faço a seguinte pesquisa:

procurar por "cadeira"

e ele me retornar

cadeira branca
cadeira amarela
cadeira azul

observação: este é apenas um exemplo. sei que isto resolveria facilmente colocando a cor em um campo separado. mas a ideia é procurar pelos dados sem necessitar de escrever o conteúdo inteiro.

valew
valew, vou tentar
Eu gostaria de usar uma página de login que primeiramente aparecece apenas o formulario de login. Mas que caso o login fosse invalido aparecece um formulario de cadastro nesta mesma pagina. É possível?

Os dados sao enviados para um servlet que faz a autenticação. Este por sua vez se o login for valido vai para a tela principal do sistema e caso invalido volta para a tela de cadastro (que no meu caso seria a pagina de login com o formulario de login oculto e o de cadastro vísivel).

Valew!!!!
pessoal fiquei na mesma. continuei sem saber o que fazer
Minha dúvida cruel é:

Quando usar jsp?
Quando usar servlet?
Quando usar javabean?
O que é melhor usar para lidar com banco de dados?

Exemplo:

-Uma tela com campos para entrar com login e senha. Os usuários estão em um banco de dados.
-Se o login é válido deve ser chamada a tela principal do sistema.
-Senão deve ser redirecionado para uma tela que a pessoa possa efetuar um cadastro.

Posso colocar a opção de cadastro na tela de login? Porém só deve aparecer esta opção se usuário já tiver tentado efetuar login e este dado erro.

Qual melhor forma?

1- Enviar os dados para uma página. Esta pagina instancia um objeto de uma classe que lida com a tabela usuarios. Esta classe instancia um objeto da classe que faz a conexao com o bd.

2- Enviar os dados para uma página. Esta página instacia um objeto de um classe que faz a conexao com o bd e acessa a tabela de usuarios. OBS: Obviamente vai haver outras tabelas no sistema.

3- Enviar os dados para um servlet e este fazer a conexão para acessar o banco, acessar a tabela usuários e validar o login. Este servlet por sua vez chama a página principal do sistema caso o login seja aceito ou chama a página de cadastro caso seja inválido.

4- Enviar os dados para um servlet e este instancia um objeto da classe usuário que faz a conexão com a tabela usuário e esta por sua vez instancia um objeto da classe que faz a conexão com o banco.

5- Enviar os dados para um servlet e este por sua vez instanciar um objeto da classe que faz conexao com o banco e acessa a classe usuários.

6- A própria página de login instanciar um objeto da classe que faz a conexão com o banco e a tabela de usuário e daí se o login for válido chamar a tela principal do sistema e se for inválido chamar a tela de cadastro.

Sei que escrevi muito. Mas peço que me ajudem. Não quero tomar um caminho que deixe meu sistema pesado.

Valew galera!!!
valew!!!!!!
kkkkkkkkkkk

para quem acha isso loucura!!!!!!!

Dê uma olhada no seguinte endereço:

http://www.google.com/webhp?complete=1&hl=en

experimentem digitar algo como: java

e vejam o que acontece.
valew pela dica.

esse cliente eh chato mesmo. Ele chegou a rejeitar uma linguagem pq para ela fazer isso necessitava de uma função, e como essa função tinha que licenciar ele não quis.

Num sou eu que sou teimoso não. É ele.

Valew galera.
Eu entendi mais ou menos. Porque isso não pode ser feito na web?

Seria pelo fato de que são muitos usuários e seria muito acesso a banco de dados? E os sistemas web tipo loja virtual que tem milhares de usuários acessando?

Mas em desktop então geraria o mesmo problema já que posso fazer um software em rede.

Se dá pra ser feito em desktop alguém pode me dar uma dica? Não faço idéia de como fazer isso em java.

Outra pergunta. Se dá pra ser feito em desktop eu poderia criar um applet para fazer isso? Esse applet poderia ter acesso ao meu bd no servidor?

Desculpe se estou sendo chato. Mas se o cliente quer assim. Tenho que dar um jeito de fazer assim, por mais louco que seja.´

Se ninguém nunca fez, como posso saber se não dá certo?

Não fiquem ofendidos por criticar o java. Gosto do java também. Mas ainda estou aprendendo. Acredito que as criticas devem ser levadas como desafio e nao ofensa.

Se puderem me ajudar agradeço

Valew galera.
o java faria isso sem ser web? Porque o delphi faz.

Se o java nao eh capaz de fazer isso entao nao eh tao bom assim como todo mundo diz.
Como posso fazer um código para que a medida que for digitando em um campo de texto um palavra o sistema ir localizando automaticamente o registro na tabela abaixo do campo.
 
Índice dos Fóruns » Perfil de JackPJ » Mensagens enviadas por JackPJ
Ir para:   
Powered by JForum 2.1.8 © JForum Team