Jump to content
Sign in to follow this  
zapper

Problemas a ir buscar informação à base de dados

Recommended Posts

zapper

Bom dia/ Boa tarde/ Boa noite

Eu estou com um problema e já estou farto de estar aqui a olhar para o programa sem encontrar solução  :wallbash:

O meu objectivo é criar um quiosque online mas na classe ao qual se vai fazer o registo, não consigo fazer com que verifique se o username está repetido e não consigo guardar os dados. Por favor ajudem-me.

Aqui está o programa:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class novoUtilizador extends JFrame implements ActionListener{
JPasswordField p1,p2;
JTextField t1,t2,t3;
JLabel label1,label2,label3,label4,label5,label6,label7;
JButton b1;
public static void main(String[] args) {
    JFrame janela=new novoUtilizador();
    janela.setUndecorated(true);
    janela.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);
    janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    janela.setVisible(true);
}
novoUtilizador(){
	setTitle("Novo utilizador");
	setSize(400,400);
	setLocation(350,50);
	getContentPane().setBackground(new Color(255,255,0));
	label1=new JLabel("Quiosque online",JLabel.CENTER);
	label1.setForeground(Color.blue);
	label1.setFont(new Font("Arial", Font.BOLD,50));
	label2=new JLabel("Utilizador*",JLabel.CENTER);
	label2.setForeground(Color.black);
	label2.setFont(new Font("Arial", Font.PLAIN,20));
	label3=new JLabel("Senha*",JLabel.CENTER);
	label3.setForeground(Color.black);
	label3.setFont(new Font("Arial", Font.PLAIN,20));
	label4=new JLabel("Confirme Senha*",JLabel.CENTER);
	label4.setForeground(Color.black);
	label4.setFont(new Font("Arial", Font.PLAIN,20));
	label5=new JLabel("Nome",JLabel.CENTER);
	label5.setForeground(Color.black);
	label5.setFont(new Font("Arial", Font.PLAIN,20));
	label6=new JLabel("Morada",JLabel.CENTER);
	label6.setForeground(Color.black);
	label6.setFont(new Font("Arial", Font.PLAIN,20));
	label7=new JLabel("*Preencher obrigatóriamente",JLabel.CENTER);
	label7.setForeground(Color.black);
	label7.setFont(new Font("Arial", Font.PLAIN,10));
	t1=new JTextField(25);
	t1.addActionListener(this);
	t2=new JTextField(25);
	t2.addActionListener(this);
	t3=new JTextField(20);
	t3.addActionListener(this);
	p1=new JPasswordField(20);
	p1.setEchoChar('*');
	p1.addActionListener(this);
	p2=new JPasswordField(16);
	p2.setEchoChar('*');
	p2.addActionListener(this);
	b1=new JButton("Registar");
	b1.addActionListener(this);
	getContentPane().setLayout(new FlowLayout());
	getContentPane().add(label1);
	getContentPane().add(label2);
	getContentPane().add(t1);
	getContentPane().add(label3);
	getContentPane().add(p1);
	getContentPane().add(label4);
	getContentPane().add(p2);
	getContentPane().add(label5);
	getContentPane().add(t2);
	getContentPane().add(label6);
	getContentPane().add(t3);
	getContentPane().add(b1);
	getContentPane().add(label7);
	if(!ligação.getConnection())
	{
		JOptionPane.showMessageDialog(null,"Falha na conexão, o sistema será fechado!");
		System.exit(0);
	}
}
public void actionPerformed(ActionEvent e){
	if(e.getSource()==b1){
		        String sql="SELECT * FROM Contas";
		        ligação.setResultSet(sql);
				if(t1.equals (sql)){
					JOptionPane.showMessageDialog(null,"Utilizador existente! experimente outro","Aviso", JOptionPane.WARNING_MESSAGE);
				}
				if(new String(p1.getPassword()).equals (new String(p2.getPassword()))){
					JOptionPane.showMessageDialog(null,"Foste registado com sucesso");
					sql="INSERT INTO Contas(Username,Password,Nome_cliente,Morada_cliente) Values('"+
					t1.getText()+"','"+
					p1.getText()+"','"+
					t2.getText()+"','"+
					t3.getText()+"','";
					System.exit(0);
				}
				else{
				JOptionPane.showMessageDialog(null,"As senhas não correspondem!","Aviso", JOptionPane.WARNING_MESSAGE);
			}
				}
}
}

Share this post


Link to post
Share on other sites
M6

zapper, ninguém te vai conseguir ajudar porque descreves apenas os sintomas do problema e não o problema.

Qual é o verdadeiro problema?

Não liga à base de dados?

Os comandos SQL estão errados?

Já fizeste debug ao programa?

Para já vejo uma coisa que acho estranha: o insert nas contas! Tu crias o comando de insert e de seguida terminas a aplicação.

Ou seja, não fazes nada com esse comando que acabas de criar.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
zapper

A base de dados conecta pois aparece uma mensagem na consola a dize-lo mas o problema é não conseguir que o programa verifique se o username já está registado na base de dados ou não e também não consigo lá inserir valores a partir do programa java

Share this post


Link to post
Share on other sites
M6

Bem, estive a ver melhor e tens uma enorme salganhada de lógica de código.

Para verificares se uma conta existe ou não não vais buscar todos os utilizadores à base de dados mas sim apenas o utilizador que tem a o nome e a password indicada. E basta fazeres um count(*), se devolver 1 está OK, caso contrário não está OK.

A razão pela qual te estás a queixar de que a base de dados não funciona é porque não a estás a usar, daí não funcionar.

Não basta escrever os comandos SQL, tens de os mandar executar e ler os resultados obtidos (no caso de um select ler o cursor).


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
zapper

Podias exemplificar usando o programa para ver o que queres dizer com isso?

Share this post


Link to post
Share on other sites
M6

Parece-me que é melhor aprenderes a coisa antes.

Lê isto: http://download.oracle.com/javase/tutorial/jdbc/basics/retrieving.html (tutorial completo aqui: http://download.oracle.com/javase/tutorial/jdbc/basics/index.html)

Tens mais aqui: http://goo.gl/hTdzq


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites

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
Sign in to follow this  

×
×
  • 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.