Java+Mysql

5 respostas
M

Salve, estou tentando fazer uma query com java e mysql mas estou começando agora e não sei quase nada, se alguém poder me dar umas dicas, queria que ao clicar no botão cadastrar ele insira os dados no banco de dados… segue o código que estou tentando:

import java.sql.*;
import javax.swing.*;
import java.awt.event.*;

public class mySql extends JFrame {
	
	JLabel l1, l2;
	JButton botao;
	JPanel panel;
	JTextField text1, text2;
	
	mySql() {
		
		text1 = new JTextField(20);		
		
		text2 = new JTextField(2);
		
		l1 = new JLabel();
		l1.setText("Nome ");
		
		l2 = new JLabel();
		l2.setText("UF ");
		
		botao = new JButton("Cadastrar");
		botao.addActionListener(new MyAction());
		
		panel = new JPanel();
		
		panel.add(l1);
		panel.add(text1);
	    panel.add(l2);
	    panel.add(text2);
	    panel.add(botao);
	    
		this.setLocation(400,200);
	    this.setVisible(true);
		this.getContentPane().add(panel);
	    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
	    this.setSize(500,500);
	    this.setTitle("Banco de Dados");
	}
	
	public class MyAction implements ActionListener {
			public void actionPerformed(ActionEvent ae) {
				if (ae.getSource() == botao) {
			Statement stExec = connection.createStatement();
			stExec.executeUpdate("insert into cliente................");
			stExec.close();
			   }
			}
		 }

	

public static void main(String[] args) {

    mySql on = new mySql();

    java.sql.Connection connection = null;
  try {
  String driverName = "org.gjt.mm.mysql.Driver"; 
  Class.forName(driverName);

   String servidor = "localhost";
   String nomeDoBanco = "teste";
   String url = "jdbc:mysql://" + servidor + "/" + nomeDoBanco;
   String login = "root";
   String senha = "jacudo";
   connection = DriverManager.getConnection(url, login, senha);
} 

   catch (ClassNotFoundException e) 
{

System.out.println("O driver expecificado não foi encontrado."); 
} 
   catch (SQLException e) 
{
         System.out.println("Não foi possível conectar ao Banco de Dados"); 
     }
   }
}

5 Respostas

G

poste o erro que esta ocorrendo, fika mais facil ajudar

vlws

digolipertte

Vou postar o meu.. mas ta um pouco diferente...

package Banco;
import java.sql.*;

public class Conect {
 public Connection Conecta(){
	 Connection conexao = null;
	 
	 try {
		Class.forName("com.mysql.jdbc.Driver");
		
	} catch (ClassNotFoundException c) {
		// TODO Auto-generated catch block
		c.printStackTrace();
	    System.out.println("ERRO" + c.getMessage());
	}
	
	 try {
		String url = "jdbc:mysql://localhost/loja";
		 conexao = DriverManager.getConnection(url , "root", "root");
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
		System.out.println("ERRO URL" + e.getMessage());
	}
 
	return conexao;
	
 
 }
 
  public void inclui( int a , String b , String c, String d, String e ,String f, String g ,String h , String i ,String j , String l ){
	  try {
		  Connection conexao = Conecta();
		PreparedStatement st = conexao.prepareStatement("Insert into cliente values (?,?,?,?,?,?,?,?,?,?,?);");
		  st.setInt(1, a);
		  st.setString(2, b);
		  st.setString(3, c);
		  st.setString(4, d);
		  st.setString(5, e);
		  st.setString(6, f);
		  st.setString(7, g);
		  st.setString(8, h);
		  st.setString(9, i);
		  st.setString(10, j);
		  st.setString(11, l);
		  
		  st.executeUpdate();
		   // System.out.println("Teste"); Serve para testear se ta funcionando.
		     st.close();
		     conexao.close();
	} catch (SQLException e1) {
		// TODO Auto-generated catch block
		e1.printStackTrace();
		
	} 
  }
 
 
 
}

ehghh aeh depois tem q add la na classe Evento olha la como tah...

package Modelo;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.ParseException;

import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.text.MaskFormatter;

import Banco.Conect;
import Modelo.TelaPrinciapal.Evento;

public class CadastroCliente extends JFrame{
	JLabel nome = new JLabel("NOME");
	JLabel nasc = new JLabel("DATA DE NASCIMENTO"); // Rotulos!
	JLabel tel = new JLabel("TELEFONE");
	JLabel email = new JLabel("E-MAIL");
	JLabel endereco = new JLabel("ENDEREÇO");
	JLabel bairro = new JLabel("BAIRRO");
	JLabel aviso = new JLabel("OBS. O CAMPO DO CPF É OBRIGATORIO!");
	
	JLabel cidade = new JLabel("CIDADE");
	JLabel estado = new JLabel("ESTADO");
	JLabel pais = new JLabel("PAIS");
	JLabel cep = new JLabel("CEP");
	JLabel cpf = new JLabel("CPF");
             
	
	JTextField jnome = new JTextField();
	JTextField jnasc;              // Textfield com mascara.
	JTextField jtel;
	JTextField jemail = new JTextField(); // Caixas de texto!
	JTextField jendereco = new JTextField();
	JTextField jbairro = new JTextField();
	JTextField jcidade = new JTextField();
	JTextField jestado = new JTextField();
	JTextField jpais = new JTextField();
	JTextField jcep = new JTextField();
	JTextField jcpf = new JTextField();
	
	JButton ok = new JButton("CADASTRA");
	JButton cancela = new JButton("CANCELA");
	
	MaskFormatter mnasc , mtel; // Mascara.
	
	JRadioButton jb1 =new JRadioButton("MASCULINO");
	JRadioButton jb2 =new JRadioButton("FEMININO");
	ButtonGroup grupo = new ButtonGroup();
	String a;
	
	JOptionPane j = new JOptionPane();
	private JFormattedTextField mn;
	
	public CadastroCliente(){
		setLayout(null);
		setVisible(true);
		setSize(600,335);
		setResizable(false);
        
		
		getContentPane().add(nome);
		getContentPane().add(nasc);
		getContentPane().add(tel);
		getContentPane().add(email);
		getContentPane().add(endereco);
		getContentPane().add(cidade);
		getContentPane().add(estado);
		getContentPane().add(pais);
		getContentPane().add(cep);
		getContentPane().add(cpf);
		getContentPane().add(jnome);
		getContentPane().add(bairro);
		getContentPane().add(jbairro);
	    getContentPane().add(aviso);
		
		getContentPane().add(jemail);
		getContentPane().add(jendereco);
		getContentPane().add(jcidade);
		getContentPane().add(jestado);
		getContentPane().add(jpais);
		getContentPane().add(jcep);
		getContentPane().add(jcpf);
		
		nome.setSize(80, 20);
		nome.setLocation(10, 20);
		
		jnome.setSize(300, 20);
		jnome.setLocation(50,20);
		
		nasc.setSize(150,40);
		nasc.setLocation(355,10 );

		aviso.setSize(300,20);
		aviso.setLocation(280,280);
		
		tel.setSize(80,20);
		tel.setLocation(10,60);
		
		
		
		email.setSize(100,20);
		email.setLocation(250,60);
		
		jemail.setSize(280, 20);
		jemail.setLocation(300,60);
		
		endereco.setSize(100, 20);
        endereco.setLocation(10,100);
        
        jendereco.setSize(500,20);
        jendereco.setLocation(80,100);   	
        
        bairro.setSize(100,20);
        bairro.setLocation(10,140);
        
       jbairro.setSize(250,20);
        jbairro.setLocation(60,140);
        
        cidade.setSize(100,20);
        cidade.setLocation(320,140);
        
        jcidade.setSize(210,20);
        jcidade.setLocation(370,140);
        
		estado.setSize(100,20);
		estado.setLocation(10,170);
		
		jestado.setSize(240,20);
		jestado.setLocation(70,170);
		
		pais.setSize(100,20);
		pais.setLocation(330,170);
        
		jpais.setSize(210,20);
		jpais.setLocation(370,170);
        
		cpf.setSize(40,20);
		cpf.setLocation(10,200);
		
		jcpf.setSize(150,20);
		jcpf.setLocation(40,200);
        
		
		getContentPane().add(ok);
		getContentPane().add(cancela);
		
		
		ok.setSize(150,40);
		ok.setLocation(200,220);
		ok.addActionListener(new Evento());
		
		cancela.setSize(210,40);
		cancela.setLocation(370,220);
		cancela.addActionListener(new Evento());
		
		JPanel p = new JPanel();
		grupo.add(jb1);
		grupo.add(jb2);
		p.setBorder(BorderFactory.createEtchedBorder());
		p.setBounds(10, 230, 100,70 );
		p.add(jb1);
		p.add(jb2);
		
		
		
		
		
		getContentPane().add(p);

		
		
		
		
		try {
			mnasc = new MaskFormatter("##/##/####");
			mtel = new MaskFormatter("(##) #### - ####");
		} catch (ParseException e) {
			System.out.println("Erro na mascra");
			e.printStackTrace();
		}
		
		mnasc.setPlaceholder("");
		jnasc = new JFormattedTextField(mnasc);
		getContentPane().add(jnasc);
		jnasc.setSize(80,20);
		jnasc.setLocation(500,20);
		jnasc.setVisible(true);
		jnasc.setText("00000000");
		
		mtel.setPlaceholder("");
		jtel = new JFormattedTextField(mtel);
		getContentPane().add(jtel);
		jtel.setSize(150,20);
		jtel.setLocation(70,60);
        jtel.setVisible(true);	
        jtel.setText("[telefone removido]");
		
        
        
	}
	

	 class Evento implements ActionListener{
		
		 public void actionPerformed(ActionEvent e){
		
			
			
	    	 if (e.getSource() == ok ){
				if (jb1.isSelected()){
					a = "Masculino";
										
				}
				
				
				if(jb2.isSelected()){
					a = "Feminino";
				}
				
				Conect c;
				c = new Conect();
				c.inclui(Integer.parseInt(jcpf.getText()),jnome.getText(), jendereco.getText(), jnasc.getText(), jtel.getText(), jemail.getText(), jbairro.getText(), 
					jcidade.getText(),jestado.getText(), jpais.getText(),a);
				limpa();
				j.showMessageDialog(null,"CLIENTE CADASTRADO COM SUCESSO!" );
	    	
	    	 
	    	
	    	 }
			
			
			
			if ( e.getSource() == cancela){
				limpa();
			}
	     }
		 
		 

	}
	 
 public void limpa(){
	
	 jnome.setText("m ");
		jnasc.setText("00000000 ");
		jtel.setText("[telefone removido] ");
		jemail.setText(" ");
		jendereco.setText(" ");
		jbairro.setText(" ");
		jcidade.setText(" ");
		jestado.setText(" ");
		jpais.setText(" ");
		jcep.setText(" ");
		jcpf.setText(" ");
		
		grupo.clearSelection(); // Desfaz a seleção dos JRadioButton.
		
 }
}
Da uma olhada aeh e ve se te serve. Espero ter te ajudado em algo. Rodrigo Lipertte
M

Cara vlw! mas eu não entendi este método:

#  public void inclui( int a , String b , String c, String d, String e ,String f, String g ,String h , String i ,String j , String l ){  
#       try {  
#           Connection conexao = Conecta();  
#         PreparedStatement st = conexao.prepareStatement("Insert into cliente values (?,?,?,?,?,?,?,?,?,?,?);");  
#           st.setInt(1, a);  
#           st.setString(2, b);  
#           st.setString(3, c);  
#           st.setString(4, d);  
#           st.setString(5, e);  
#           st.setString(6, f);  
#           st.setString(7, g);  
#           st.setString(8, h);  
#           st.setString(9, i);  
#           st.setString(10, j);  
#           st.setString(11, l);  
#             
#           st.executeUpdate();  
#            // System.out.println("Teste"); Serve para testear se ta funcionando.  
#              st.close();  
#              conexao.close();  
#     } catch (SQLException e1) {  
#         // TODO Auto-generated catch block  
#         e1.printStackTrace();  
#           
#     }   
#   }  
#   
#   
#   
# }

Tipo é essa a idéia que eu tinha, a lógica eu peguei, mas não estou conseguindo encaixar no meu código, nesta parte da um erro

Connection conexao = Conecta();
PreparedStatement st = conexao.prepareStatement("Insert into cliente values )

n saquei bem, se puder dar um help… Vlw!

abçs.

M

Ae funfo :wink: dei uma lida la na API e entendi… Vlw mesmo cara… abçs!

digolipertte
Ahh isso eu tbm me compliquei no começo kkkk. Mas olha so... Esse metodo e oq insere dentro do banco.. nesse caso eu to usando o MySQL.
public void inclui( int a , String b , String c, String d, String e ,String f, String g ,String h , String i ,String j , String l ){    
       try {    
           Connection conexao = Conecta();    
         PreparedStatement st = conexao.prepareStatement("Insert into cliente values (?,?,?,?,?,?,?,?,?,?,?);");    //Esses ? servem para simbolizar as var do banco sabe... tipo cpf , nome e coisa e tals....

           st.setInt(1, a);    //aki siquinifica q é o primeiro ponto (?) e ele tem o nome de a.
           st.setString(2, b);    
           st.setString(3, c);    
          st.setString(4, d);    
          st.setString(5, e);    
           st.setString(6, f);    
           st.setString(7, g);    
           st.setString(8, h);    
           st.setString(9, i);    
           st.setString(10, j);    
          st.setString(11, l);    
              
          st.executeUpdate();    
            // System.out.println("Teste"); Serve para testear se ta funcionando.    
              st.close();    
              conexao.close();    
     } catch (SQLException e1) {    
         // TODO Auto-generated catch block    
         e1.printStackTrace();    
             
     }     
  }    
     
     
     
}

O resto acho q não tem mistério mas qualquer coisa vc me pergunta q eu te respondo..
meu msn é [email removido] mas tah meio dificil de eu entrar no msn. meu e-mail é [email removido] é atualizado todo dia.
Abração... E qualquer duvida é so avisar.

Criado 14 de abril de 2008
Ultima resposta 15 de abr. de 2008
Respostas 5
Participantes 3