Gui com acesso ao mysql!

6 respostas
M

Pessoal to com uma tremenda dificuldade para acessar o banco de dados atravÊs de uma Gui…atrvÊs de um codigo normal já consegui…mas por uma Gui não…Se qlguem puder me dar um Help…

import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.Statement;  
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.ButtonGroup;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.ItemListener;
import java.awt.event.ItemEvent;
import java.awt.Font;
import javax.swing.JButton;
import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.Statement; 
import javax.swing.*;




public class GuiBancoDeDados extends JFrame{
	
	private JLabel Filme;
	private JLabel Genero;
	private JLabel idCadastro;
	private JTextField TFilme;
	private JTextField TGenero;
	private JTextField TidCadastro;
	private JButton Enviar;
	private String driver = "com.mysql.jdbc.Driver";  
    private String url = "jdbc:mysql://localhost/locadora";  
    private String usuario = "root";  
    private String senha = "virtual";  
    Connection conn;  
    Statement stmt;
	
	
	public GuiBancoDeDados(){
		super("Cadastro de Filmes");
		setLayout(new FlowLayout());
		
		
		Filme = new JLabel("Nome do Filme");
		TFilme = new JTextField(20);
		add(Filme);
		add(TFilme);
		
		Genero = new JLabel("Genero do Filme");
		TGenero = new JTextField(20);
		add(Genero);
		add(TGenero);
		
		idCadastro = new JLabel("Codigo do Filme");
		TidCadastro = new JTextField(20);
		add(idCadastro);
		add(TidCadastro);
		
		
		Enviar = new JButton("Enviar");
		add(Enviar);
		Enviar.addActionListener(new ActionListener()
		{
			public void actionPerformed( ActionEvent event )
			{//******
			GuiBancoDeDados conexao = new GuiBancoDeDados();
			try {
				Class.forName(conexao.driver);
				conexao.conn = DriverManager.getConnection(conexao.url,conexao.usuario,conexao.senha);
				
				
				if(!conexao.conn.isClosed()){
					System.out.println("Conexao Ativada");
					
					
					String sql ="INSER INTO locadora.cadastro" + "(TFilme,TGenero,TidCadastro)" +" VALUES ("+"'"+Filme+"'"+","+"'"+Genero+"'"+","+"'"+idCadastro+"'"+");";
					int flag = conexao.stmt.executeUpdate(sql);
					
					if(flag == 0){
						System.out.println("inclusão não realizada");
						}else{
							System.out.println("inclusão realizada com sucesso");
							} //final else
						conexao.conn.close();
						System.out.println("Conexao Desativada");
										}//fim conexao.conn is closed
										else{
											System.out.println("Conexao não ativada");
										}
			}catch(Exception e) {
				System.out.println("Erro AcessaDB :"+e.toString());
			}finally{
			try{
				conexao.conn.close();
				System.out.println("Conexão Desativada no finally!");
				
			}catch (Exception e) {
				System.out.println("Erro Fechamento Conexao no finally!");
			}
			}
			}// fim action performed
		}//fim action listener
			
			
			);//fim add.action listener
		
		
	}	// fim do construtor
	public static void main(String arg[]){
		GuiBancoDeDados guibanco = new GuiBancoDeDados();
		
		guibanco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		guibanco.setSize(275,220);
		guibanco.setVisible(true);
		
	}
	
	
	
}//fim da classe de primeiro nivel

6 Respostas

douglasrauber

Manda o erro jovem…

Douglas

ViniGodoy

Dá algum erro?

Outra coisa.

  1. Procure separar os métodos que fazem acesso ao banco de dados numa classe separada, não use no meio da sua GUI;
  2. Procure usar PreparedStatement, isso evita que você fique concatenando strings na variável sql, evita que você tenha que ficar formatando dados para o banco e evita também o ataque de SQL Injection.
juliofsn

Se esse pequeno erro de digitação estiver em seu código, então é ele o problema.

String sql ="INSER INTO

Veja que no lugar de INSERT está INSER (o T foi “comido”).

Rafael_Marques1

ViniGodoy:
Dá algum erro?

Outra coisa.

  1. Procure separar os métodos que fazem acesso ao banco de dados numa classe separada, não use no meio da sua GUI;
  2. Procure usar PreparedStatement, isso evita que você fique concatenando strings na variável sql, evita que você tenha que ficar formatando dados para o banco e evita também o ataque de SQL Injection.

ou casos como alguem cadastrar o filme Joana Darc

M

Esse problema já resolvi agora o problema é outro da o seguinte erro data truncation, data to long for colun, creio que seja pq estou pegando os dados diretos de uma jtextfiel? :?: alguem pode me sugerir algo???

Hebertbc

o erro é pq o tamano do texto do jtextfield é maior que o tamano especificado na coluna do banco

Criado 11 de março de 2010
Ultima resposta 11 de mar. de 2010
Respostas 6
Participantes 6