Olá Pessoal, estava criando meu projeto de conexão com o banco de dados, quase fechando, porém me apareceu algo que naum estou vendo uma saida par resolver:
Por favor, avaliem: quando chamoo controle ele me traz a opção da classe visao que o usuario escolheu(incluir, alterar, exlcuir…), ai dependendo da opção ele me direciona para a classe Dao, para puxar o objeto vo preenchido na visao, e direciona para a canexao com o banco para fazer o procedimento(inlcusao. exclusão…etc, me retornando uma msgn de erro ou acerto.
Porém na parte de update, ele altera o campo que eu escolherEX: Ricardo, é alterado para manoel…entre outros…
Mas eu gostaria que ele verificasse no banco primeiro para depois retonar a msgn que alterou ou não alterou, pois se existe ou não no banco o valor que o usuario digitar ele retona alterado com sucesso, a unica diferença é que se existe ele altera realmente, e se não, ele so retorna a msng de alterado com sucesso, mas não altera nd(obviamente).Estou mandando trechos das classes separados:Por favor me ajudem
Classe controle:
[code]
public class Controle
{
public void EscolherOpcao() throws SQLException
{
Visao v = new Visao();//Cria um objeto de Visão
int escolha = v.Opcao();//Atribui o retorno da escolha do usuário na variável escolha
UsuarioDao dao = new UsuarioDao();//Cria um novo objeto de UsuárioDao
switch(escolha)//Verifica a escolha
{//Chama o método correspondente no UsuárioDao
case 1:
dao.IncluirUsuario();
break;
case 2:
dao.ExcluirUsuário();
break;
case 3:
dao.LocalizarUsuário();
break;
case 4:
dao.AlterarUsuário();
break;
case 5:
System.exit(0);
break;
default:
System.out.println(“Opção Inválida!”);
break;
}
}
}[/code]
Classe Usuario Dao
public void AlterarUsuário() throws SQLException
{
int opcaoEscolha = new Visao().AlterarUsuarioOpcao();
switch(opcaoEscolha)
{
case 1:
{
UsuarioVo vAlter = new Visao().AlterarUsuarioNomeVisao();
cb.Alterar("UPDATE usuario SET nome = '" + vAlter.getNome() + "' WHERE nome = '" + vAlter.getNomeAlter() +"';");
break;
}
case 2:
{
UsuarioVo vAlter = new Visao().AlterarUsuarioCpfVisao();
cb.Alterar("UPDATE usuario SET cpf = '" + vAlter.getCpfAlter() + "' WHERE cpf = '" + vAlter.getCpf() +"';");
break;
}
case 3:
{
UsuarioVo vAlter = new Visao().AlterarUsuarioBairroVisao();
cb.Alterar("UPDATE usuario set bairro = '" + vAlter.getBairroAlter() + "' WHERE bairro = '" +vAlter.getBairro() + "';");
break;
}
default:
{
System.out.println("Opção Inválida!");
}
}
Controle crtl = new Controle();//Chama o controle novamente para selecionar a proxima opção
crtl.EscolherOpcao();
}
Classe Visao:Onde o usuario primeiro chama a alterarUsuarioOpcao,para saber o que quer alterar, depois chama as de baixo!
public int AlterarUsuarioOpcao()//Caso a opção escolhida seja de modificação
{
System.out.println("Escolha uma opção de alteração no banco: 1-Nome, 2-CPF, 3-Bairro");
//Escolhe-se o tipo de modificação que se quer
int escolhaTroca = Integer.parseInt(s.next());
return escolhaTroca;
}
public UsuarioVo AlterarUsuarioNomeVisao()//Caso escolha a modificação do NOME
{
UsuarioVo voAlter = new UsuarioVo();
System.out.println("Digite o nome do Usuario que deseja alterar:");
voAlter.setNomeAlter(s.next());
System.out.println("Digite por qual nome " +voAlter.getNomeAlter()+ " deve ser trocado:");
voAlter.setNome(s.next());
return voAlter;
}
public UsuarioVo AlterarUsuarioCpfVisao()//Caso escolha a modificação do CPF
{
UsuarioVo voAlter = new UsuarioVo();
System.out.println("Digite o numero de cpf que deseja alterar:");
voAlter.setCpf(s.next());
System.out.println("Digite por qual cpf " + voAlter.getCpf() + " deve ser trocado:");
voAlter.setCpfAlter(s.next());
return voAlter;
}
public UsuarioVo AlterarUsuarioBairroVisao()//Caso escolha a modificação do BAIRRO
{
UsuarioVo voAlter = new UsuarioVo();
System.out.println("Digite o bairro que deseja alterar:");
voAlter.setBairro(s.next());
System.out.println("Digite poor qual bairro " + voAlter.getBairro() + " deve ser trocado:");
voAlter.setBairroAlter(s.next());
return voAlter;
}
ClasseConecta Banco
public void Alterar(String s)
{
try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
try
{
Connection conn = DriverManager.getConnection(getUrl(), getLogin(), getSenha());
try
{
String sql = s;//String que recebe o valor que veio de parametro
Statement stm = conn.createStatement();
try
{
stm.executeUpdate(s);
System.out.println("Alterado com Sucesso!\n\n");
}
catch(Exception e)
{
System.out.println("Erro no Update!!!");
}
}
catch(Exception e)
{
System.out.println("Erro No statement!");
}
}
catch(Exception e)
{
System.out.println("Deu erro na conexão!");
}
}
catch(Exception e)
{
System.out.println("Deu erro na parte de carregar o driver!");
}
}
Por favor me ajudem