boa tarde a todos ! em estudos, criei uma pequena tela de cadastro, apenas com os campos nome, telefone e pais. fiz toda a implementação do codigo conforme apostila do meu
curso, mas o que não consegui fazer foi, por exemplo, o botao gravar, fazer com que ele insira os dados nos campos, alerar, deletar etc. criei a conexao, Dao, e a view, com
apenas os 3 campos nome, telefone e pais, e os botoes gravar, deletar e excluir. pesquisei aqui no fórum, a casos semelhantes, mas a forma que estou seguindo na apostila, não
consegui encontrar o erro. outro erro também, é que na ultima classe postada, a CustomerActionListener, ele esta pedindo Try Catch , mas não entendi o porque ele pede o Try
e continuou o erro mesmo com o Try ,posto meu código. obrigado.
meu codigo CustomerForm, onde implemento os botoes e a ActionListener:
package br.com.cadastrocliente.view.controller;
import br.com.cadastrocliente.controller.customer.CustomerActionListener;
import java.awt.TextField;
import javax.swing.JTextField;
/**
*
* @author admin
*/
public class CustomerForm extends javax.swing.JFrame {
private CustomerActionListener listener;
/** Creates new form CustomerForm */
public CustomerForm() {
initComponents();
init();
}
public void init() {
listener = new CustomerActionListener(this);
btCreate.addActionListener(listener);
btUpdate.addActionListener(listener);
btDelete.addActionListener(listener);
btSave.addActionListener(listener);
btCancel.addActionListener(listener);
btSair.addActionListener(listener);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
txtNome = new java.awt.TextField();
txtPhone = new java.awt.TextField();
txtFederalID = new java.awt.TextField();
btCreate = new javax.swing.JButton();
btDelete = new javax.swing.JButton();
btUpdate = new javax.swing.JButton();
btSave = new javax.swing.JButton();
btSair = new javax.swing.JButton();
btCancel = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanel1.setBackground(new java.awt.Color(213, 215, 220));
jButton1.setText("Nome:");
jButton2.setText("Phone:");
jButton3.setText("Federal ID :");
txtNome.setText("textField1");
txtPhone.setText("textField2");
txtFederalID.setText("textField3");
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(21, 21, 21)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jButton1)
.addComponent(jButton3)
.addComponent(jButton2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(txtFederalID, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(txtNome, javax.swing.GroupLayout.DEFAULT_SIZE, 474, Short.MAX_VALUE)
.addComponent(txtPhone, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap(257, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(60, 60, 60)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(txtNome, javax.swing.GroupLayout.DEFAULT_SIZE, 28, Short.MAX_VALUE)
.addComponent(jButton1))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(txtPhone, javax.swing.GroupLayout.DEFAULT_SIZE, 28, Short.MAX_VALUE)
.addComponent(jButton2))
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(txtFederalID, javax.swing.GroupLayout.DEFAULT_SIZE, 28, Short.MAX_VALUE)
.addComponent(jButton3, javax.swing.GroupLayout.Alignment.LEADING))
.addContainerGap(22, Short.MAX_VALUE))
);
btCreate.setText("Gravar");
btCreate.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btCreateActionPerformed(evt);
}
});
btDelete.setText("Deletar");
btUpdate.setText("Alterar");
btSave.setText("Salvar");
btSair.setText("Sair");
btCancel.setText("Cancelar");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(23, 23, 23)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(132, 132, 132)
.addComponent(btCreate)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(btDelete)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(btUpdate)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btSave)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btSair, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(btCancel, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(49, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btCreate)
.addComponent(btDelete)
.addComponent(btUpdate)
.addComponent(btSave)
.addComponent(btSair)
.addComponent(btCancel))
.addContainerGap(134, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void btCreateActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new CustomerForm().setVisible(true);
}
});
}
public TextField getTxtFederalID() {
return txtFederalID;
}
public void setTxtFederalID(TextField txtFederalID) {
this.txtFederalID = txtFederalID;
}
public TextField getTxtNome() {
return txtNome;
}
public void setTxtNome(TextField txtNome) {
this.txtNome = txtNome;
}
public TextField getTxtPhone() {
return txtPhone;
}
public void setTxtPhone(TextField txtPhone) {
this.txtPhone = txtPhone;
}
// Variables declaration - do not modify
private javax.swing.JButton btCancel;
private javax.swing.JButton btCreate;
private javax.swing.JButton btDelete;
private javax.swing.JButton btSair;
private javax.swing.JButton btSave;
private javax.swing.JButton btUpdate;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JPanel jPanel1;
private java.awt.TextField txtFederalID;
private java.awt.TextField txtNome;
private java.awt.TextField txtPhone;
// End of variables declaration
}
a classe CustomerService
package br.com.cadastrocliente.model.service;
import br.com.cadastrocliente.model.dao.CustomerDao;
import br.com.cadastrocliente.model.entity.Customer;
import java.sql.SQLException;
public class CustomerService {
private CustomerDao dao;
public CustomerService() {
dao = new CustomerDao();
}
public void create(Customer customer) throws Exception {
System.out.println("create " + customer);
dao.create(customer);
}
public void update(Customer customer) throws Exception {
dao.update(customer);
}
public void delete(Customer customer) throws Exception {
dao.delete(customer);
}
public Customer findById(String id) throws SQLException {
return dao.searchById(id);
}
// }
}
a classe Customer:
package br.com.cadastrocliente.model.entity;
public class Customer {
private String id;
private String nome;
private String telefone;
private String federalID;
public Customer() {
}
public Customer(String id, String nome, String telefone, String federalID) {
this.id = id;
this.nome = nome;
this.telefone = telefone;
this.federalID = federalID;
}
public Customer(String nome, String telefone, String federalID) {
super();
this.nome = nome;
this.telefone = telefone;
this.federalID = federalID;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String getFederalID() {
return federalID;
}
public void setFederalID(String federalID) {
this.federalID = federalID;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("Customer [id=");
builder.append(id);
builder.append(", nome=");
builder.append(nome);
builder.append(", telefone=");
builder.append(telefone);
builder.append(", federalID=");
builder.append(federalID);
builder.append("]");
return builder.toString();
}
@Override
public int hashCode() {
int hash = 7;
hash = 97 * hash + (this.id != null ? this.id.hashCode() : 0);
hash = 97 * hash + (this.nome != null ? this.nome.hashCode() : 0);
hash = 97 * hash + (this.telefone != null ? this.telefone.hashCode() : 0);
hash = 97 * hash + (this.federalID != null ? this.federalID.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Customer other = (Customer) obj;
if (federalID == null) {
if (other.federalID != null)
return false;
} else if (!federalID.equals(other.federalID))
return false;
if (id != other.id)
return false;
if (nome == null) {
if (other.nome != null)
return false;
} else if (!nome.equals(other.nome))
return false;
if (telefone == null) {
if (other.telefone != null)
return false;
} else if (!telefone.equals(other.telefone))
return false;
return true;
}
}
a classe CustomerDao :
package br.com.cadastrocliente.model.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import br.com.cadastrocliente.model.entity.Customer;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
public class CustomerDao {
private ConectaDao conectaDao = new ConectaDao();
public void create(Customer customer) throws SQLException {
PreparedStatement psm = null ;
psm = conectaDao.getConnection().prepareStatement("Insert into Clientes (nome, telefone, federalID) values (?,?,?)");
psm.setString(1, customer.getNome());
psm.setString(2, customer.getTelefone());
psm.setString(3, customer.getFederalID());
psm.execute();
psm.close();
closeConnection();
}
public void update(Customer customer) throws SQLException {
PreparedStatement psm = null ;
psm = conectaDao.getConnection().prepareStatement("Updade Clientes SET nome=? , telefone=? , federalID=?");
psm.setString(1, customer.getNome());
psm.setString(2, customer.getTelefone());
psm.setString(3, customer.getFederalID());
psm.execute();
psm.close();
closeConnection();
}
//public void delete (Customer customer) throws SQLException {
public void delete(String id ) throws SQLException {
PreparedStatement psm = conectaDao.getConnection().prepareStatement("DELETE FROM CLIENTES WHERE federalID = ?");
psm.setString(1, id);
psm.executeUpdate();
psm.close();
closeConnection();
}
public Customer searchById(String id) throws SQLException {
PreparedStatement psm = conectaDao.getConnection().prepareStatement("SELECT * FROM CLIENTES WHERE federalID = ?");
psm.setString(1, id);
ResultSet rset = psm.executeQuery();
Customer customer = null;
while ( rset.next()) {
customer = new Customer();
customer.setId(rset.getString(1));
customer.setNome(rset.getString(2));
customer.setTelefone(rset.getString(3));
customer.setFederalID(rset.getString(4));
break;
}
rset.close();
psm.close();
closeConnection();
return customer;
}
public LinkedList<Customer> search(int typeSearch, String str) throws SQLException {
LinkedList<Customer> customers = new LinkedList<Customer>();
PreparedStatement psm = conectaDao.getConnection().prepareStatement(getSearchQuery(typeSearch));
psm.setString(1, str);
ResultSet rset = psm.executeQuery();
while (rset.next()) {
Customer customer = new Customer();
customer.setId(rset.getString(1));
customer.setNome(rset.getString(2));
customer.setTelefone(rset.getString(3));
customer.setFederalID(rset.getString(4));
}
rset.close();
psm.close();
closeConnection();
return customers;
}
private String getSearchQuery (int typeSearch) {
String sql = null;
switch (typeSearch ) {
case 1:
sql = "SELECT * FROM CLIENTES WHERE nome = ?";
break;
case 2:
sql = "SELECT * FROM CLIENTES WHERE telefone= ?";
break;
case 3:
sql= "SELECT * FROM CLIENTES WHERE federalID= ?";
break;
}
return sql;
}
private void closeConnection() throws SQLException {
conectaDao.getConnection().close();
}
}
a classe ConectaDao :
package br.com.cadastrocliente.model.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConectaDao {
protected static Connection conn = null ;
private String userName = null ;
private String password = null ;
private String url = null ;
private String Driver = null ;
public ConectaDao() {
userName = "root";
password = "123456";
url = "jdbc:localhost:3306/clientes";
Driver = "com.mysql.jdbc.Driver";
}
public Connection getConnection() {
try {
if (conn == null ) {
Class.forName(Driver);
conn = DriverManager.getConnection(url, userName, password);
} else if (conn.isClosed()) {
conn = null;
return getConnection();
}
} catch (ClassNotFoundException e) {
System.out.println("ClassNotFoundExecption: ");
System.out.println(e.getMessage());
} catch (SQLException e) {
System.out.println("SQLExecption: ");
System.out.println(e.getMessage());
}
return conn;
}
public void closeConnection() {
if (conn !=null ) {
try {
conn.close();
} catch (SQLException e ) {
System.out.println("SQLExecption: ");
System.out.println(e.getMessage());
}
}
}
}
a classe CustomerActionListener:
package br.com.cadastrocliente.controller.customer;
import br.com.cadastrocliente.model.entity.Customer;
import br.com.cadastrocliente.model.service.CustomerService;
import br.com.cadastrocliente.view.controller.CustomerForm;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author admin
*/
public class CustomerActionListener implements ActionListener {
private CustomerForm form;
private CustomerService service;
public CustomerActionListener(CustomerForm form) {
this.form = form;
service = new CustomerService();
}
public void actionPerformed(ActionEvent event) {
// identificar o evento executado e chamar o comando adequado.
if ( event.getActionCommand().equals("Create") ) {
service.create(mappingFormToCustomer()); // recebe a instancia do form
} else if ( event.getActionCommand().equals("Update1") ) {
service.update(mappingFormToCustomer());
} else if ( event.getActionCommand().equals("Delete") ) {
service.delete(mappingFormToCustomer());
} else if ( event.getActionCommand().equals("Find") ) {
// service.findById(id)
} else {
} // pode saber qual foi acionador através do getactioncomand
// que é o nome do label
}
// mapear o texto do form para o nosso objeto (instancia
public Customer mappingFormToCustomer () {
Customer customer = new Customer();
customer.setNome(form.getTxtNome().getText());
customer.setTelefone(form.getTxtPhone().getText());
customer.setFederalID(form.getTxtFederalID().getText());
return customer;
}
public void mappingCustomerToForm(Customer customer) {
// popula os textos do db com os do form e add nos dados.
form.getTxtNome().setText( customer.getNome());
form.getTxtPhone().setText( customer.getTelefone());
form.getTxtFederalID().setText( customer.getFederalID());
}
}