Jump to content

Validação de campo para uso em BD.


Go to solution Solved by Knitter,

Recommended Posts

Posted

Ola ,

Já algum tempo ando  :wallbash: pois não consigo atraves da FrameLogin que contem um Texfield onde se insere la um nome e dps faz-se a autenticação a ver se existe na BD ou não.

Mas o meu Problema é Usar Esse Nome que é inserido pelo utilizador e se existir na Base de Dados então entra na aplicação e Ao entrar gostaria de guardar o Nome como variavel global para poder usar em Todos os outros JFRAMEs para poder fazer condições em SQL do Genero "select * from mytable where Utilizador= '" + Nome+"' ".

Espero ter sido explicito na minha questão.

Obrigado.

Desde já agradeço toda ajuda.

Posted

Sim FQueiros.

Por exemplo eu em VB.NET criava um Modulo e la criava uma Variavel Global chamada utilizador.

E essa variavel continha o valor da Jtextfield e claro se o login fosse correcto com o da BD e depois Bastava-me usa-la sempre que quiseses em funcao de Comandos SQL com restrições.

Mas aqui em Jáva ando com esse problema 😛 .

Posted

O problema, parece-me, não é a utilização da variável global mas a forma como estavas habituado a fazer, que não tem lógica nenhuma. Variáveis globais? Os compiladores deviam dar choques eléctricos a qualquer programador que as tentasse usar.

Tens uma janela com campos de textos, o utilizador introduz o username e a password, pegas nos dados, verificas se o utilizador é válido e se for tens um objecto para o utilizador que está autenticado que está guardado na classe principal do teu modelo de dados. Nunca vais guardar esse elemento numa JFrame, e as outras JFrames (nem deviam existir outras, só devia existir uma) nunca escrevem SQL. Devias ter isso separado entre interface gráfica e modelo da aplicação.

Dado que a aplicação não segue nenhuma das regras básicas para bom desenvolvimento, podes simplesmente martelar uma passagem do username, ou outro valor, no construtor das JFrames, ou, caso queiras usar variáveis globais (conceito que não existe em Java), podes usar uma variável estática e pública na tua JFrame principal, e aceder a essa variável sempre que necessário.

No entanto, seria uma boa oportunidade para esqueceres o que vazias em VB e começares a desenvolver aplicações seguindo princípios mais correctos.

Posted

Knitter mas eu nao estou a Desenvolver segundo VB.

Até Porque tenho Classe BD , Classe JTABLE e etc.

Tenho Tudo Estruturado e desculpa mas discordo do que disses-te.

Agora posso e tar a Fazer de uma forma erra e isso posso Corrigir.

Agora Como é Obvio tenho de usar JFrames certo.

Ou Então uso uma JFRAme e Para Todas as outras usar Jdialog  é o mais correcto para desenvolvimento de uma aplicação Desktop?

  • Solution
Posted

Quando falei "segundo VB" era referente ao exemplo que deste de ter um módulo e usar uma variável global. Quanto a teres essas classes, isso não diz nada, ter classes só por ter não torna a aplicação melhor.

Tens de usar uma e só uma JFrame, usar mais que uma é deitar recursos fora e complicar a aplicação. A janela principal da tua aplicação deve ser uma JFrame, para que tenhas alguns recursos que outros componentes não te dão, mas as restantes janelas devem ser sempre JDialog, é para isso que foram criadas.

Pela descrição que colocaste, não me parece que estejas a desenvolver a aplicação seguindo um bom modelo. Uma aplicação deve ser feita em, pelo menos 3 pequenas camadas, completamente separadas e identificáveis: modelo da aplicação (é aqui que se coloca toda a lógica da aplicação, para todos os efeitos este modelo é a aplicação e tem todo o código necessário para implementar as funcionalidades da aplicação), interface (a interface pode ser gráfica, de texto, ou qualquer outra forma esotérica que te lembres, tem é de ser independente do modelo e não pode ter SQL, código de lógica ou qualquer coisa que não seja referente apenas ao aspecto), e camada de lógica da interface (aqui é colocado todo o código que corresponde à lógica que faz a interface funcionar, é aqui que se coloca o código que é comum ver dentro dos métodos dos eventos, é neste código que se liga ao modelo e se invocam as funcionalidades dele).

Estes 3 componentes, naturalmente, podem estar misturadas se isso simplificar, mas não tão misturadas como o que indicaste. Na interface nunca deves ter SQL, isso é algo que, no caso mais simples, diz respeito à secção do modelo da aplicação, e nesse caso simples, não precisas de variáveis globais porque os dados do utilizador autenticado estão nessa secção e acessíveis directamente. Num caso mais complexo estarão na mesma nessa secção mas poderão ser passados como parâmetros entre várias operações.

De qualquer modo, no meu primeiro tópico tens uma solução para a questão que colocaste: se usares variáveis estáticas públicas tens uma simulação de variáveis globais. Recomendo vivamente que não o faças, além de ser desnecessário neste caso, variáveis globais são péssimas. Só usadas em casos muito particulares que não fazem sentido em Java.

Posted

Okap Knitter Já percebi perfeitamente.

Simplesmente tava a  fazer uma Borrada e das grandes.

Quanto a estruturação da aplicação nao estava a fazer da melhor maneira mas já me corrigiste e já percebi e tem toda a logica sem duvida alguma.

Obrigado 😛

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.