Pessoal, boa tarde.
Estava desenvolvendo uma classe que tem como objetivo inserir usuários, listar os usuários, excluir algum usuário de acordo com o seu código inteiro e atualizar os mesmos.
Estou utilizando como banco de dados mySQL.
Segue o código abaixo:
[code]package exercicio04list2;
//inicio da classe Cliente, para ler dados e retornar dados.
import java.util.*;
public class Cliente {
private String nome;
private String email;
private int codigo;
public String getNome() {
return nome;
}
public String getEmail() {
return email;
}
public int getCodigo() {
return codigo;
}
public void lerCodigo(){
System.out.println("Codigo");
Scanner in=new Scanner(System.in);
codigo=in.nextInt();
}
public void lerEmail(){
System.out.println("Email");
Scanner in=new Scanner(System.in);
email=in.nextLine();
}
public void lerNome(){
System.out.println("Nome");
Scanner in=new Scanner(System.in);
nome=in.nextLine();
}
}
//inicio da classe Dao, para abrir o banco de dados.
import java.sql.*;
public class Dao {
Connection con=null;
PreparedStatement stmt=null;
ResultSet rs=null;
public void abreConexao() throws Exception{
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/exercicio03","root","asr577");
}
public void fechaConexao(){
try{
if(con!=null)
con.close();
if(stmt!=null);
stmt.close();
if(rs !=null);
rs.close();
}catch (Exception e){
e.printStackTrace();
}
}
}
//inicio da classe ClienteDao para manipular o banco de dados.
public class ClienteDao extends Dao {
public void inserir(int codigo, String nome, String email) throws Exception{
abreConexao();
stmt=con.prepareStatement("insert into Cliente values (?,?,?)");
stmt.setInt(1,codigo);
stmt.setString(2,nome);
stmt.setString(3,email);
stmt.execute();
fechaConexao();
}//codigo para inserir os usuarios
public void listar()throws Exception{
abreConexao();
stmt=con.prepareStatement("select * from Cliente");
rs=stmt.executeQuery();
while(rs.next()){
System.out.println("Código...: "+rs.getInt("codigo"));
System.out.println("Nome...: "+rs.getString("nome"));
System.out.println("Email...: "+rs.getString("email"));
}
stmt.close();
fechaConexao();
}//codigo para listar os usuarios
public void excluir(int codigo)throws Exception{
int cod=codigo;
abreConexao();
stmt=con.prepareStatement("delete from teste where codigo= ?");
stmt.setInt(1,cod);
stmt.execute();
stmt.close();
fechaConexao();
}//codigo para excluir os usuarios
public void atualizar(int codigo, String nome, String email)throws Exception{
abreConexao();
stmt=con.prepareStatement("update cliente set codigo= ?, nome= ?, email= ? where codigo= ?");
stmt.setInt(1,codigo);
stmt.setString(2,nome);
stmt.setString(3,email);
stmt.setInt(4,codigo);
stmt.execute();
stmt.close();
fechaConexao();
}//codigo para atualizar os dados dos usuarios.
}
//inicio da classe Main
public class Main {
public static void main(String[] args) {
try{
Cliente cli=new Cliente();
cli.lerCodigo(); //lê o código do cliente
cli.lerNome(); //lê o nome do cliente
cli.lerEmail(); //lê o email do cliente.
ClienteDao dao=new ClienteDao();
dao.inserir(cli.getCodigo(),cli.getNome(),cli.getEmail());//insere os dados dos clientes
System.out.println("Dados incluídos com sucesso"); //se estiver tudo certo imprime essa mensagem
dao.listar(); //lista os usuarios inseridos
System.out.println("Digite o código do cliente que deseja excluir");
cli.lerCodigo(); //lê o codigo do usuario que deseja excluir
dao.excluir(cli.getCodigo()); //exclui o usuario referente ao codigo acima.
dao.listar(); //exibe tabela após exclusao
}catch (Exception e){
System.out.println(e.getMessage());
}
}[/code]
Ao executar a classe Main, os dados solicitados Codigo, Nome e E-mail são inseridos, tanto que ao consultar a tabela via console mySQL os dados estão lá, mas no netBeans dá a mensagem de erro como nas imagens:
Alguem poderia me ajudar? Gostaria de saber o que está de errado com o codigo.


