Como faço pra Atualizar uma tabela em MYSQL?

2 respostas
I

Pessoal preciso atualizar uma tabela em mysql no meu programa em java algúem poderia me ajudar.

O nome do banco é poo, A tabela tem o nome alunos e os campos são idAluno: int 11, nmAluno: varchar 50, endAluno: varchar 60, eMail: varchar 30 e Fone: varchar 15

Tipo eu já consegui fazer os outros comandos que são inserir, deletar e consultar mas está faltando o atualizar se alguém puder me ajudar ficarei grato.

Essa é minha Classe Manipular Banco:
import java.sql.*;
import javax.swing.JOptionPane;

         public class ManipularBanco {
   // atributos da classe 
	private String JDBC_DRIVER;
	private String DATABASE_URL;
	private String user;
	private String password;

	// atributos de conexão
	
	private Connection conn;
	private Statement  stmt;
	private ResultSet  rs;
	 
	public boolean inserir(String SQL) {
		
		int linhas = 0;
		try
		{
			System.out.println("Inserindo dados....");
			System.out.println("Instrucao SQL :: "+ SQL);
			
			linhas = stmt.executeUpdate(SQL);
			if(linhas > 0) return true;
			else return false;
		}
		
		catch(SQLException e)
		{
			JOptionPane.showMessageDialog(null, "Erro!!! \n Ao tentar inserir registros!! \n SQL :: " + e,"Erro Conexão BD",JOptionPane.INFORMATION_MESSAGE);
			return false;
		}
	}
	 
	public boolean deletar(int codAluno) {
		
	String query = "DELETE FROM alunos WHERE idAluno = " + codAluno;
	
	int linhas = 0;
		try
		{
			System.out.println("Deletando dados....");
			System.out.println("Instrucao SQL :: "+ query);
		
				linhas = stmt.executeUpdate(query);
					if(linhas > 0) return true;
						else return false;
		}
	
		catch(SQLException e)
		{
			JOptionPane.showMessageDialog(null, "Erro!!! \n Ao tentar deletar registros!! \n SQL :: " + e,"Erro Conexão BD",JOptionPane.INFORMATION_MESSAGE);
			return false;
		}
	
	}
	 
	public boolean consultar(int codAluno, String nome) {
		boolean bCod = true, bNome = true;
		String query = null;
		if ( codAluno == 0)
		{
			codAluno = 0;
			 bCod = false;
		}
		if ( nome == null)
		{
			nome = null; 
			 bNome = false;
		}
		
		if (bCod  && bNome)
		{
			query = "SELECT * FROM alunos WHERE idAluno = " + codAluno + " AND nmAluno LIKE '" + nome + "'";
		} else
		if (bCod)
		{
			 query = "SELECT * FROM alunos WHERE idAluno = " + codAluno;			
		}
		else
		if (bNome)
		{
			 query = "SELECT * FROM alunos WHERE  nmAluno LIKE '%" + nome + "%'";
		}
		
		try
		{
			System.out.println("Mostrando dados....");
			System.out.println("Instrucao SQL :: "+ query);
		
				rs = stmt.executeQuery(query);
					
//				 processa resultados da consulta
		         ResultSetMetaData metaData = rs.getMetaData();
		         int numberOfColumns = metaData.getColumnCount();     
		         System.out.println( "Dados da Tabela Alunos::" );
		         // Imprime os nomes de coluna da Tabela
		         for ( int i = 1; i <= numberOfColumns; i++ )
		            System.out.printf( "%-8s\t", metaData.getColumnName( i ));
		         System.out.println();
		         
		         while (rs.next()) 
		         {
		        	 // Imprime os valores das colunas
		            for ( int i = 1; i <= numberOfColumns; i++ )
		               System.out.printf( "%-8s\t", rs.getObject( i ));
		            System.out.println();
		         } // fim do while
		         
		         return true;
		  }  // fim do try
		
		
			catch(SQLException e)
			{
				JOptionPane.showMessageDialog(null, "Erro!!! \n Ao tentar selecionar registros!! \n SQL :: " + e,"Erro Conexão BD",JOptionPane.INFORMATION_MESSAGE);
				return false;
			
			}
			
		}
		 
	public boolean atualizar(String SQL) {

		int linhas = 0;
		try
		{
			System.out.println("Realizando atualizacao de dados....");
			System.out.println("Instrucao SQL :: "+ SQL);
			
			linhas = stmt.executeUpdate(SQL);
			if(linhas > 0) return true;
			else return false;
		}
		
		catch(SQLException e)
		{
			JOptionPane.showMessageDialog(null, "Erro!!! \n Ao tentar atualizar registros!! \n SQL :: " + e,"Erro Conexão BD",JOptionPane.INFORMATION_MESSAGE);
			return false;
		}
		
		
	}
	 
	public boolean conectarBD(String DRIVER, String BANCO, String login, String senha) {
		// grava variaveis privadas com informações do banco
		JDBC_DRIVER = DRIVER;
		DATABASE_URL = BANCO;
		user = login;
		password = senha;
		
		
		try
		{
			// Carregando o driver
			Class.forName(DRIVER);
			// Realizando a conexão
			conn = DriverManager.getConnection(BANCO,login, senha);
			// Objeto para realizar operações SQL
			stmt = conn.createStatement();
			
			return true;
		}
		catch (ClassNotFoundException e)
		{
			JOptionPane.showMessageDialog(null, "Erro!!! \n Ao tentar conectar ao \n Banco de Dados!!!\n Classe de Conexão não encontrada\n" + e,"Erro Conexão BD",JOptionPane.INFORMATION_MESSAGE);
		    return false;
		}
		
		catch (SQLException e)
		{
			JOptionPane.showMessageDialog(null, "Erro!!! \n Ao tentar conectar ao \n Banco de Dados!!!\n" + e,"Erro Conexão BD",JOptionPane.INFORMATION_MESSAGE);
			return false;
		}
	}
	 
	public boolean desconectarBD() {
		
		try
		{
			// fecha conexão com BD
			conn.close();
			rs.close();
			stmt.close();
			
			return true;
		}
		
		catch( SQLException e)
		{
			JOptionPane.showMessageDialog(null, "Erro!!! \n Ao tentar desconectar ao \n Banco de Dados!!!\n" + e,"Erro  BD",JOptionPane.INFORMATION_MESSAGE);
			return false;
			
		}
	}
	 
}
e essa é a classe IniciarBanco:
import javax.management.Query;
import javax.swing.JOptionPane;

public class IniciarBanco {
	
	public static void main (String args[]){
		
		ManipularBanco Banco = new ManipularBanco();
		
		String cont = null;
		
		while (cont != "100")
		{
		
		String DRIVER = "com.mysql.jdbc.Driver";
		String BANCO = "jdbc:mysql://localhost/poo";
		String login = "root";
		String senha = "";
		
		Banco.conectarBD(DRIVER, BANCO, login, senha);
		
		String Opc = JOptionPane.showInputDialog(null,"Escolha uma das Opções: \n \n [1-]  Inserir Dados \n " +
				"[2-]  Consultar Banco \n [3-]  Deletar Dados \n [4-]  Atualizar Dados \n [5-]  Sair \n\n");
		int Opcao = Integer.parseInt(Opc);
		
		switch (Opcao) {
		
		case 1:
			JOptionPane.showMessageDialog(null,"Digite os dados do Aluno: ","Modulo Inserção de dados",JOptionPane.QUESTION_MESSAGE);
			String Nome = JOptionPane.showInputDialog(null,"Digite o Nome do Aluno: ");
			String endereço = JOptionPane.showInputDialog(null,"Digite o Endereço do Aluno: ");
			String Mail = JOptionPane.showInputDialog(null,"Digite o eMail do aluno: ");
			String Telefone = JOptionPane.showInputDialog(null,"Digite o Telefone: ");
				
			String SQL = "insert into alunos (nmALuno, endAluno, eMail, Fone) values ('"+Nome+"','"+endereço+"','"+Mail+"','"+Telefone+"')";
			Banco.inserir(SQL);
			JOptionPane.showMessageDialog(null,"Dados Inseridos com Sucesso","Parabens",JOptionPane.WARNING_MESSAGE);
		break;
		
		case 2:
			JOptionPane.showMessageDialog(null,"Você Ecolheu Consulatar Banco de Dados","Modulo Consulta",JOptionPane.QUESTION_MESSAGE);
			String CodAluno = JOptionPane.showInputDialog(null,"Digite o Código do Aluno Para Consultar: ");
			int CodAlun = Integer.parseInt(CodAluno);
			String NomeAluno = JOptionPane.showInputDialog(null,"Digite o Nome do Aluno: ");
			Banco.consultar(CodAlun, NomeAluno);
			JOptionPane.showMessageDialog(null,"Consulta efetuada com sucesso","Parabens",JOptionPane.QUESTION_MESSAGE);
			break;
			
		case 3:
			JOptionPane.showMessageDialog(null,"Você Escolheu Deletar Dados!","Modulo Deletar",JOptionPane.QUESTION_MESSAGE);
			String idAluno = JOptionPane.showInputDialog(null,"Digite o Código que Você quer Deletar: ");
			int codAluno = Integer.parseInt(idAluno);
			Banco.deletar(codAluno);
			
			JOptionPane.showMessageDialog(null,"Dados deletados com Sucesso!","Deletando...",JOptionPane.ERROR_MESSAGE);
		break;
		
		case 4:
			break;
			

		default:
			break;
		}
	      String Sair = JOptionPane.showInputDialog(null,"Deseja Continuar:\n[1-]  SIM\n[2-]  NÂO \n","Deseja Continuar",JOptionPane.ERROR_MESSAGE);
          double saida = Integer.parseInt(Sair);
          if (saida == 2) // Se for igual a 2 o programa finaliza
        {
        	cont = "100";
        }
    }
  }		
}

Se alguem não entendeu é so falar.

2 Respostas

Dieval_Guizelini

Da mesma forma que você realizou o insert e o delete você pode fazer o update. A sintaxe geral é:

update tabela
set campo1=valor,campo2=valor2
where campo_chave1 = valor

mas, o mais importante é você separar o seu código.

Crie uma classe para acessar o banco de dados.
Outra para executar os comandos SQL (veja o padrão DAO na sun)
http://java.sun.com/blueprints/patterns/DAO.html
Outra classe para representar o aluno
e outra para a interface.

fw

Jair_Rillo_Junior

sempre que for postar algum erro, além de procurar antes sobre alguma duvida parecida no fórum, é importante postar o erro que deu.
De resto, segue a ajuda do amigo Dieval que deve resolver seu problema

Criado 27 de abril de 2007
Ultima resposta 27 de abr. de 2007
Respostas 2
Participantes 3