/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package caio.dao;
import caio.bd.CriaConexao;
import caio.logica.Controle;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author Administrador
*/
public class ControleDao {
public Connection conexao;
public ControleDao() throws SQLException {
this.conexao = CriaConexao.getConexao();
}
public List<Controle> listaContatos(String nome) throws SQLException {
List<Controle> controles = new ArrayList();
String sql = "SELECT empresa,motorista,nom_motorista,dat_atualizacao,pontuacao,cnh FROM frt_motorista b LEFT OUTER JOIN controle_cnh a ON a.cod_empresa = b.empresa AND a.cod_motorista = b.motorista WHERE b.nom_motorista like ? ";
PreparedStatement stmt = this.conexao.prepareStatement(sql);
stmt.setString(1, nome);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
Controle c1 = new Controle();
c1.setEmpresa(rs.getString("empresa"));
c1.setMotorista(rs.getString("motorista"));
c1.setNomMotorista(rs.getString("nom_motorista"));
c1.setData(rs.getDate("dat_atualizacao"));
c1.setPontuacao(rs.getInt("pontuacao"));
c1.setCnh(rs.getString("cnh"));
controles.add(c1);
}
rs.close();
stmt.close();
return controles;
}
public void adiciona(Controle c1) throws SQLException {
String sql = "insert into controle_cnh (cod_empresa,cod_motorista,dat_atualizacao,pontuacao)values (?,?,?,?)";
PreparedStatement stmt = conexao.prepareStatement(sql);
stmt.setString(1, c1.getEmpresa());
stmt.setString(2, c1.getMotorista());
stmt.setDate(3, c1.getData());
stmt.setInt(4, c1.getPontuacao());
stmt.execute();
stmt.close();
}
public void altera(Controle c1) throws SQLException {
String sql = "update controle_cnh set cod_empresa=?,cod_motorista=?,dat_atualizacao=?,pontuacao=? where id =?";
PreparedStatement stmt = conexao.prepareStatement(sql);
stmt.setString(1, c1.getEmpresa());
stmt.setString(2, c1.getMotorista());
stmt.setDate(3, c1.getData());
stmt.setInt(4, c1.getPontuacao());
stmt.setLong(5, c1.getId());
stmt.execute();
stmt.close();
}
}
package caio.forms;
import caio.dao.ControleDao;
import caio.logica.Controle;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.text.DefaultFormatterFactory;
import javax.swing.text.MaskFormatter;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
* Principal.java
*
* Created on 26/01/2010, 19:02:32
*/
/**
*
* @author caio
*/
public class Principal extends javax.swing.JFrame {
DefaultTableModel tmControle = new DefaultTableModel(null, new String[]{"empresa", "codigo", "nome", "cnh"});
List<Controle> controles;
ListSelectionModel lsmControle;
List<Controle> c1;
public static DefaultFormatterFactory setFormatoData() {
MaskFormatter comFoco = null;
try {
comFoco = new MaskFormatter("##/##/####");
} catch (Exception pe) {
}
DefaultFormatterFactory factory = new DefaultFormatterFactory(comFoco, comFoco);
return factory;
}
public static java.sql.Date formataData(String data) throws Exception {
if (data == null || data.equals("")) {
return null;
}
java.sql.Date date = null;
try {
DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
date = new java.sql.Date(((java.util.Date) formatter.parse(data)).getTime());
} catch (ParseException e) {
throw e;
}
return date;
}
/** Creates new form Principal */
public Principal() {
initComponents();
}
/** 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();
jLEmpresa = new javax.swing.JLabel();
jLCodigoMotorista = new javax.swing.JLabel();
jLNomeMotorista = new javax.swing.JLabel();
jLPontuacao = new javax.swing.JLabel();
jTEmpresa = new javax.swing.JTextField();
jTMotorista = new javax.swing.JTextField();
jTNomMotorista = new javax.swing.JTextField();
jBSalvar = new javax.swing.JButton();
jBSair = new javax.swing.JButton();
jTData = new javax.swing.JFormattedTextField();
jLDataAtualizacao = new javax.swing.JLabel();
jTCnh = new javax.swing.JTextField();
jLCnh = new javax.swing.JLabel();
jTPontuacao = new javax.swing.JTextField();
jTId = new javax.swing.JTextField();
jLId = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
jTControle = new javax.swing.JTable();
jBPesquisa = new javax.swing.JButton();
jTPesquisa = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Cadastro de Contatos"));
jLEmpresa.setText("EMPRESA:");
jLCodigoMotorista.setText("CÓDIGO");
jLNomeMotorista.setText("NOME:");
jLPontuacao.setText("PONTUAÇÃO:");
jTMotorista.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
jTMotoristaKeyReleased(evt);
}
});
jTNomMotorista.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
jTNomMotoristaKeyReleased(evt);
}
});
jBSalvar.setText("Salvar");
jBSalvar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jBSalvarActionPerformed(evt);
}
});
jBSair.setText("Sair");
jBSair.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jBSairActionPerformed(evt);
}
});
jTData.setFormatterFactory(setFormatoData());
jLDataAtualizacao.setText("ATUALIZAÇÃO:");
jLCnh.setText("CNH:");
jTPontuacao.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
jTPontuacaoKeyReleased(evt);
}
});
jLId.setText("ID:");
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLEmpresa)
.addComponent(jLCodigoMotorista)
.addComponent(jLNomeMotorista)
.addComponent(jLDataAtualizacao)
.addComponent(jLId))
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(11, 11, 11)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTMotorista, javax.swing.GroupLayout.PREFERRED_SIZE, 83, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTData, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTEmpresa, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTNomMotorista, javax.swing.GroupLayout.PREFERRED_SIZE, 257, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTId, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(37, 37, 37)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLPontuacao)
.addComponent(jLCnh))
.addGap(27, 27, 27)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTPontuacao, javax.swing.GroupLayout.PREFERRED_SIZE, 83, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTCnh, javax.swing.GroupLayout.PREFERRED_SIZE, 187, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(51, 51, 51)))
.addContainerGap())
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jBSalvar)
.addGap(18, 18, 18)
.addComponent(jBSair, javax.swing.GroupLayout.PREFERRED_SIZE, 72, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(251, 251, 251))))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(20, 20, 20)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(jPanel1Layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTId, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLId))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLEmpresa)
.addComponent(jTEmpresa, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLCodigoMotorista)
.addComponent(jTMotorista, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLCnh)
.addComponent(jTCnh, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(27, 27, 27)))
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLNomeMotorista)
.addComponent(jTNomMotorista, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLPontuacao)
.addComponent(jTPontuacao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTData, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLDataAtualizacao))
.addGap(29, 29, 29)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jBSair, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jBSalvar, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
jTControle.setModel(tmControle);
jTControle.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
lsmControle = jTControle.getSelectionModel();
lsmControle.addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent e){
if (! e.getValueIsAdjusting()){
jTControleLinhaSelecionada(jTControle);
}
}
}
);
jScrollPane1.setViewportView(jTControle);
jBPesquisa.setText("Pesquisar");
jBPesquisa.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jBPesquisaActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
.addGap(35, 35, 35)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 752, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(jTPesquisa, javax.swing.GroupLayout.PREFERRED_SIZE, 608, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 49, Short.MAX_VALUE)
.addComponent(jBPesquisa)
.addGap(41, 41, 41))
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 777, Short.MAX_VALUE))))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTPesquisa, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jBPesquisa))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 247, Short.MAX_VALUE)
.addContainerGap())
);
pack();
}// </editor-fold>
private void jTControleLinhaSelecionada(JTable jT) {
if (jT.getSelectedRow() != -1) {
jTEmpresa.setText(String.valueOf(c1.get(jT.getSelectedRow()).getEmpresa()));
jTMotorista.setText(c1.get(jT.getSelectedRow()).getMotorista());
jTNomMotorista.setText(c1.get(jT.getSelectedRow()).getNomMotorista());
jTData.setText(new SimpleDateFormat("dd/MM/yyyy").format(c1.get(jT.getSelectedRow()).getData()));
jTPontuacao.setText(String.valueOf(c1.get(jT.getSelectedRow()).getPontuacao()));
jTCnh.setText(String.valueOf(c1.get(jT.getSelectedRow()).getCnh()));
}
}
private void listaContatos() throws SQLException {
ControleDao dao = new ControleDao();
c1 = dao.listaContatos("%" + jTPesquisa.getText().trim() + "%");
mostraContatos(c1);
}
private void mostraContatos(List<Controle> c1) {
while (tmControle.getRowCount() > 0) {
tmControle.removeRow(0);
}
if (c1.size() == 0) {
JOptionPane.showMessageDialog(this, "Nenhum contato encontrado!!!");
} else {
String[] campos = new String[]{null, null, null, null};
for (int i = 0; i < c1.size(); i++) {
tmControle.addRow(campos);
tmControle.setValueAt(c1.get(i).getEmpresa(), i, 0);
tmControle.setValueAt(c1.get(i).getMotorista(), i, 1);
tmControle.setValueAt(c1.get(i).getNomMotorista(), i, 2);
tmControle.setValueAt(c1.get(i).getCnh(), i, 3);
}
}
}
private void jTMotoristaKeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if (evt.getKeyCode() != 32 & evt.getKeyCode() != 8 & evt.getKeyCode() != 37 & evt.getKeyCode() != 39) //JOptionPane.showMessageDialog(null, evt.getKeyCode(),"Código da tecla", 0);
{
jTMotorista.setText(jTMotorista.getText().toUpperCase());
}
}
private void jTNomMotoristaKeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if (evt.getKeyCode() != 32 & evt.getKeyCode() != 8 & evt.getKeyCode() != 37 & evt.getKeyCode() != 39) //JOptionPane.showMessageDialog(null, evt.getKeyCode(),"Código da tecla", 0);
{
jTNomMotorista.setText(jTNomMotorista.getText().toUpperCase());
}
}
private void jBSalvarActionPerformed(java.awt.event.ActionEvent evt) {
try {
salvar();
JOptionPane.showMessageDialog(this, "Dados atualizados!!!");
// TODO add your handling code here:
// TODO add your handling code here:
} catch (SQLException ex) {
Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(this, "Ocorreu um erro e as informações não foram gravadas no banco de dados!!!");
}
// TODO add your handling code here:
// TODO add your handling code here:
}
private void jBSairActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0); // TODO add your handling code here:
}
private void jBPesquisaActionPerformed(java.awt.event.ActionEvent evt) {
try {
// TODO add your handling code here:
listaContatos();
} catch (SQLException ex) {
Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void jTPontuacaoKeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
}
public void salvar() throws SQLException {
Controle c1 = new Controle();
ControleDao dao = new ControleDao();
if (jTId.getText().equals("")) {
try {
c1.setEmpresa(jTEmpresa.getText().toUpperCase());
c1.setMotorista(jTMotorista.getText().toUpperCase());
try {
c1.setData(formataData(jTData.getText()));
} catch (Exception ex) {
Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
}
c1.setPontuacao(Integer.getInteger(jTPontuacao.getText()));
dao.adiciona(c1); // TODO add your handling code here:
JOptionPane.showMessageDialog(null, "Contato cadastrado com sucesso!!!");
} catch (SQLException ex) {
Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(null, "Ocorreu algum erro verifique!!!");
}
//insert
} else {
{
c1.setEmpresa(jTEmpresa.getText().toUpperCase());
c1.setMotorista(jTMotorista.getText().toUpperCase());
try {
c1.setData(formataData(jTData.getText()));
} catch (Exception ex) {
Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
}
c1.setPontuacao(Integer.getInteger(jTPontuacao.getText()));
dao.altera(c1);
JOptionPane.showMessageDialog(null, "Contato alterado com sucesso!!!");
}
//update
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Principal().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jBPesquisa;
private javax.swing.JButton jBSair;
private javax.swing.JButton jBSalvar;
private javax.swing.JLabel jLCnh;
private javax.swing.JLabel jLCodigoMotorista;
private javax.swing.JLabel jLDataAtualizacao;
private javax.swing.JLabel jLEmpresa;
private javax.swing.JLabel jLId;
private javax.swing.JLabel jLNomeMotorista;
private javax.swing.JLabel jLPontuacao;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextField jTCnh;
private javax.swing.JTable jTControle;
private javax.swing.JFormattedTextField jTData;
private javax.swing.JTextField jTEmpresa;
private javax.swing.JTextField jTId;
private javax.swing.JTextField jTMotorista;
private javax.swing.JTextField jTNomMotorista;
private javax.swing.JTextField jTPesquisa;
private javax.swing.JTextField jTPontuacao;
// End of variables declaration
}
Neste trexo do codigo que faço trazer nos campos a informação… quando seleciona um campo da table… estava funcionando… mas agora nao ocnsigo colocar o id…
O objetivo é na primeira vez que eu pegar um registro e que realmente nao traga o id a data e nem os pontos… pois eles referem-se a tabela que criei… a ideia e de atualizar aqui e no salvar dar o insert… apartir dai da proxima vez sim consultar… ai quando alterar fazer o update