Galera me da uma força ai. Sou iniciante em Java e estou com problemas aqui na hora de inseri e recumperar dados do banco
Obs : Uso o padrão MVC;
Segue abaixo as classes e interface:
// pacote bean -> class Cliente estou usando o conceito de herança ------------------------------------------->
package com.gercom.bean;
public class Cliente extends Endereco{
}
package com.gercom.bean;
public class Endereco extends Pessoa{
private String endereco;
private String complemento;
private String bairro;
private String cidade;
private String estado;
private String cep;
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getComplemento() {
return complemento;
}
public void setComplemento(String complemento) {
this.complemento = complemento;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
public String getCep() {
return cep;
}
public void setCep(String cep) {
this.cep = cep;
}
}
package com.gercom.bean;
public class Pessoa{
private int id;
private String nome;
private String sexo;
private long cpf;
private String rg;
private String dataExpedicao;
private String orgaoExpeditor;
private String nomeConjugue;
private String cargo;
private double renda;
private String empresa;
private String telefoneEmpresa;
private String telefone;
private String telefone2;
private String celular;
private String celular2;
private String fax;
private String email;
private String site;
private String dataCadastro;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
public long getCpf() {
return cpf;
}
public void setCpf(long cpf) {
this.cpf = cpf;
}
public String getRg() {
return rg;
}
public void setRg(String rg) {
this.rg = rg;
}
public String getDataExpedicao() {
return dataExpedicao;
}
public void setDataExpedicao(String dataExpedicao) {
this.dataExpedicao = dataExpedicao;
}
public String getOrgaoExpeditor() {
return orgaoExpeditor;
}
public void setOrgaoExpeditor(String orgaoExpeditor) {
this.orgaoExpeditor = orgaoExpeditor;
}
public String getNomeConjugue() {
return nomeConjugue;
}
public void setNomeConjugue(String nomeConjugue) {
this.nomeConjugue = nomeConjugue;
}
public String getCargo() {
return cargo;
}
public void setCargo(String cargo) {
this.cargo = cargo;
}
public double getRenda() {
return renda;
}
public void setRenda(double renda) {
this.renda = renda;
}
public String getEmpresa() {
return empresa;
}
public void setEmpresa(String empresa) {
this.empresa = empresa;
}
public String getTelefoneEmpresa() {
return telefoneEmpresa;
}
public void setTelefoneEmpresa(String telefoneEmpresa) {
this.telefoneEmpresa = telefoneEmpresa;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String getTelefone2() {
return telefone2;
}
public void setTelefone2(String telefone2) {
this.telefone2 = telefone2;
}
public String getCelular() {
return celular;
}
public void setCelular(String celular) {
this.celular = celular;
}
public String getCelular2() {
return celular2;
}
public void setCelular2(String celular2) {
this.celular2 = celular2;
}
public String getFax() {
return fax;
}
public void setFax(String fax) {
this.fax = fax;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getSite() {
return site;
}
public void setSite(String site) {
this.site = site;
}
public String getDataCadastro() {
return dataCadastro;
}
public void setDataCadastro(String dataCadastro) {
this.dataCadastro = dataCadastro;
}
}
// pacote dao-> class Conector ------------------------------------------------------------------------------------->
package com.wellen.arquiteturabd;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
* A classe <code>Conector</code> é responsável pela
* conexão com o banco de dados mysql
*
*/
@Cabecalho(
instituicao = "Sport Total",
progeto = "Sistema de gerenciamento",
dataCriacao = "15/09/2013",
criador = "Wellen P M",
revisao = 001
)
public class Conector {
/**
* Faz a conexão com o banco de dados mysql
* onde deverá ser passado como parâmetros para essa conexão
* as <em>String com o nome do banco de dados, nome de usuário,
* e senha de acesso ao banco</em>.
*
* @param nomeBanco
* @param user
* @param senha
* @return DriverManager
*/
public Connection getConnection(String nomeBanco, String user, String senha) {
try {
return DriverManager.getConnection("jdbc:mysql://localhost/"+ nomeBanco, user, senha);
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
// pacote dao -> class ClienteDao ela implementa a interface Dao que está logo abaixo -------------->
package com.gercom.dao;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import com.gercom.bean.Cliente;
import com.wellen.arquiteturabd.Conector;
import com.wellen.arquiteturabd.Dao;
public class ClienteDao implements Dao{
// USAREMOS PARA CONFIGURAR A NOSSA CONEXÃO COMO BANCO DE DADOS
Connection conn = (Connection) new Conector().getConnection("loja", "root", "");
@Override
public List<Object> Select() {
// TODO Auto-generated method stub
return null;
}
@Override
public void delete(Object arg0) {
Cliente cliente = (Cliente) arg0;
String sql = "DELETE FROM cliente WHERE id = ?";
try {
PreparedStatement pst = conn.prepareStatement(sql);
pst.setInt(1, cliente.getId());
pst.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void insert(Object arg0) {
Cliente cliente = (Cliente) arg0;
String sql = "INSERT INTO cliente (nome, sexo, cpf, rg, orgaoExpeditor, nomeConjugue, endereco, complemento, bairro, cidade, "
+ "estado, cep, telefone, celular, celular2, cargo, renda, empresa, telefoneEmpresa, dataCadastro, dataExpedicao) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
// ------------------------- --------------------------------->>>
// ENCAMINHA REQUISIÇÕES AO SERVIDOR
try {
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, cliente.getNome());
pst.setString(2, cliente.getSexo());
pst.setLong(3, cliente.getCpf());
pst.setString(4, cliente.getRg());
pst.setString(5, cliente.getOrgaoExpeditor());
pst.setString(6, cliente.getNomeConjugue());
pst.setString(7, cliente.getEndereco());
pst.setString(8, cliente.getComplemento());
pst.setString(9, cliente.getBairro());
pst.setString(10, cliente.getCidade());
pst.setString(11, cliente.getEstado());
pst.setString(12, cliente.getCep());
pst.setString(13, cliente.getTelefone());
pst.setString(14, cliente.getCelular());
pst.setString(15, cliente.getCelular2());
pst.setString(16, cliente.getCargo());
pst.setDouble(17, cliente.getRenda());
pst.setString(18, cliente.getEmpresa());
pst.setString(19, cliente.getTelefoneEmpresa());
pst.setString(20, cliente.getDataCadastro());
pst.setString(21, cliente.getDataExpedicao());
pst.executeUpdate();
/* System.out.println(cliente.getNome() + " "+ cliente.getEndereco());*/
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public Object select(int arg0) {
String sql = "SELECT * FROM cliente WHERE id = ?";
Cliente cliente = new Cliente();
try {
PreparedStatement pst = conn.prepareStatement(sql);
pst.setInt(1, arg0);
ResultSet list = pst.executeQuery();
while (list.next()) {
cliente.setId(list.getInt("id"));
cliente.setDataCadastro(list.getString("dataCadastro"));
cliente.setNome(list.getString("nome"));
cliente.setSexo(list.getString("sexo"));
cliente.setCep(list.getString("cpf"));
cliente.setRg(list.getString("rg"));
cliente.setDataExpedicao(list.getString("dataExpedicao"));
cliente.setOrgaoExpeditor(list.getString("orgaoExpeditor"));
cliente.setNomeConjugue(list.getString("nomeConjugue"));
cliente.setEndereco(list.getString("endereco"));
cliente.setComplemento(list.getString("complemento"));
cliente.setBairro(list.getString("bairro"));
cliente.setCidade(list.getString("cidade"));
cliente.setEstado(list.getString("estado"));
cliente.setCep(list.getString("cep"));
cliente.setTelefone(list.getString("telefone"));
cliente.setCelular(list.getString("celular"));
cliente.setCelular2(list.getString("celular2"));
cliente.setCargo(list.getString("cargo"));
cliente.setRenda(list.getDouble("renda"));
cliente.setEmpresa(list.getString("empresa"));
cliente.setTelefoneEmpresa(list.getString("telefoneEmpresa"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return cliente;
}
@Override
public void update(Object arg0) {
Cliente cliente = (Cliente) arg0;
String sql = "UPDATE set cliente (nome=?, sexo=?, cpf=?, rg=?, orgaoExpeditor=?, nomeConjugue=?, endereco=?, complemento=?, bairro=?, cidade=?, "
+ "estado=?, cep=?, telefone=?, celular=?, celular2=?, cargo=?, renda=?, empresa=?, telefoneEmpresa=?, dataCadastro=?, dataExpedicao=? where id=?)";
// ------------------------- --------------------------------->>>
// ENCAMINHA REQUISIÇÕES AO SERVIDOR
try {
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, cliente.getNome());
pst.setString(2, cliente.getSexo());
pst.setLong(3, cliente.getCpf());
pst.setString(4, cliente.getRg());
pst.setString(5, cliente.getOrgaoExpeditor());
pst.setString(6, cliente.getNomeConjugue());
pst.setString(7, cliente.getEndereco());
pst.setString(8, cliente.getComplemento());
pst.setString(9, cliente.getBairro());
pst.setString(10, cliente.getCidade());
pst.setString(11, cliente.getEstado());
pst.setString(12, cliente.getCep());
pst.setString(13, cliente.getTelefone());
pst.setString(14, cliente.getCelular());
pst.setString(15, cliente.getCelular2());
pst.setString(16, cliente.getCargo());
pst.setDouble(17, cliente.getRenda());
pst.setString(18, cliente.getEmpresa());
pst.setString(19, cliente.getTelefoneEmpresa());
pst.setString(20, cliente.getDataCadastro());
pst.setString(21, cliente.getDataExpedicao());
pst.setInt(22, cliente.getId());
pst.executeUpdate();
/* System.out.println(cliente.getNome() + " "+ cliente.getEndereco());*/
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
// interface Dao ------------------------------------------------------------------------------------------------------------>
package com.wellen.arquiteturabd;
import java.util.List;
/**
* A classe que implementar essa Interface <code>Dao</code> deverá
* também implementar todos os seus métodos.
*
*/
@Cabecalho(
instituicao = "Sport Total",
progeto = "Sistema de gerenciamento",
dataCriacao = "15/09/2013",
criador = "Wellen P M",
revisao = 001
)
public interface Dao {
public void insert(Object o);
public void update(Object o);
public void delete(Object o);
public Object select (int id);
public List<Object> Select();
}
// Nossa class para testar ---------------------------------------------------------------------------------------------------->
package com.gercom.util;
import com.gercom.bean.Cliente;
import com.gercom.dao.ClienteDao;
public class Start {
public static void main(String[] args) {
Cliente cliente = new Cliente();
ClienteDao dao = new ClienteDao();
cliente.setDataCadastro("1984/01/25");
cliente.setNome("wellen");
cliente.setSexo("m");
cliente.setCpf(879);
cliente.setDataExpedicao("2008/10/22");
cliente.setRg("mg 15985647");
cliente.setOrgaoExpeditor("MG");
cliente.setNomeConjugue("Marilda");
cliente.setEndereco("Rua Fabricio Abrantes Pego");
cliente.setComplemento("Travessa");
cliente.setBairro("Nova Esperança");
cliente.setCidade("Malacacheta");
cliente.setEstado("MG");
cliente.setCep("30690000");
cliente.setTelefone("0413791339155");
cliente.setCelular("0423791339155");
cliente.setCelular2("0433791339155");
cliente.setCargo("Vendedor");
cliente.setRenda(12.99);
cliente.setEmpresa("Sport Total");
cliente.setTelefoneEmpresa("0453791339155");
// dao.insert(cliente);
cliente.setId(5);
Cliente c = (Cliente) dao.select(6);
System.out.println(c.getNome());
}
}
Consigo faze a inclusão e deleção no banco de dados, mais não consigo obter retorno de um cliente do banco. O pede ser? Já quebrei a cabeça aqui e não achei o erro. Se alguém puder me dar alguma dica de como melhorar meu código fico grato.
Abaixo segue o codigos do banco e o erro:
CREATE TABLE cliente
(
id
int(10) NOT NULL AUTO_INCREMENT,
dataCadastro
date NOT NULL,
nome
varchar(255) NOT NULL,
sexo
varchar(1) NOT NULL,
cpf
int(12) NOT NULL,
rg
varchar(12) NOT NULL,
dataExpedicao
date NOT NULL,
orgaoExpeditor
varchar(8) NOT NULL,
nomeConjugue
varchar(255) NOT NULL,
endereco
varchar(150) NOT NULL,
complemento
varchar(150) NOT NULL,
bairro
varchar(100) NOT NULL,
cidade
varchar(100) NOT NULL,
estado
varchar(50) NOT NULL,
cep
varchar(8) NOT NULL,
telefone
varchar(15) NOT NULL,
celular
varchar(15) NOT NULL,
celular2
varchar(15) NOT NULL,
cargo
varchar(150) NOT NULL,
renda
decimal(7,2) NOT NULL,
empresa
varchar(150) NOT NULL,
telefoneEmpresa
varchar(15) NOT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1;
java.sql.SQLException: Value ‘0000-00-00’ can not be represented as java.sql.Date
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920)
at com.mysql.jdbc.ResultSetImpl.getDateFromString(ResultSetImpl.java:2298)
at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5860)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5693)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5733)
at com.gercom.dao.ClienteDao.select(ClienteDao.java:153)
at com.gercom.util.Start.main(Start.java:37)
wellen