Bom dia galera,
Estou com um problema com a conexao, onde eu utilizo ela perfeitamente para fazer todas as operações no banco em 2 classes, nas demais classes,
tenho sempre problema quando utilizo o .statement.executeUpdate(), dispara o seguinte erro:
[quote]Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at Cadastros.Cad_Servico.bt_salvarActionPerformed(Cad_Servico.java:168)
at Cadastros.Cad_Servico.access$100(Cad_Servico.java:11)
at Cadastros.Cad_Servico$2.actionPerformed(Cad_Servico.java:61)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
[/quote]
andei lendo pode ser que não instanciei alguma coisa, só que ja to quebrando a cabeça, sei que pode ser coisa simples… entao segue a baixo uma das classes com erro , e a minha classe conexao.
//Minha Classe
package Cadastros;
import java.sql.SQLException;
import javax.swing.*;
import utilitarios.Conexao;
/**
*
* @author Rodrigo
*/
public class Cad_Servico extends javax.swing.JFrame {
Conexao cad_servico;
public Cad_Servico() {
initComponents();
cp_codigo.setEditable(false);
cp_nome.requestFocus();
cad_servico= new Conexao();
cad_servico.conecta();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
cp_codigo = new javax.swing.JTextField();
cp_nome = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
bt_salvar = new javax.swing.JButton();
bt_cancelar = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
cp_descricao = new javax.swing.JTextArea();
jLabel4 = new javax.swing.JLabel();
cp_valor = new javax.swing.JTextField();
jScrollPane2 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
cp_codigo.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cp_codigoActionPerformed(evt);
}
});
jLabel1.setText("Código:");
jLabel2.setText("Nome:");
jLabel3.setText("Descricão:");
bt_salvar.setText("Salvar");
bt_salvar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bt_salvarActionPerformed(evt);
}
});
bt_cancelar.setText("Cancelar");
bt_cancelar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bt_cancelarActionPerformed(evt);
}
});
cp_descricao.setColumns(20);
cp_descricao.setRows(5);
jScrollPane1.setViewportView(cp_descricao);
jLabel4.setText("Valor:");
cp_valor.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cp_valorActionPerformed(evt);
}
});
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane2.setViewportView(jTable1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addComponent(jLabel2)
.addComponent(jLabel4))
.addGap(19, 19, 19)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(cp_nome, javax.swing.GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE)
.addComponent(cp_codigo, javax.swing.GroupLayout.PREFERRED_SIZE, 49, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(cp_valor, javax.swing.GroupLayout.PREFERRED_SIZE, 54, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 440, Short.MAX_VALUE)
.addGap(85, 85, 85))))
.addGroup(layout.createSequentialGroup()
.addGap(50, 50, 50)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 452, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(87, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addGap(199, 199, 199)
.addComponent(bt_salvar, javax.swing.GroupLayout.PREFERRED_SIZE, 63, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(bt_cancelar)
.addContainerGap(246, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(cp_codigo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel1))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(cp_nome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(cp_valor, 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.LEADING)
.addComponent(jLabel3)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(36, 36, 36)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 20, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(bt_salvar)
.addComponent(bt_cancelar)))
);
pack();
}// </editor-fold>
private void bt_salvarActionPerformed(java.awt.event.ActionEvent evt) {
String Insert = "Insert Into Cad_Servico (nome, valor, descricao) values('"+cp_nome.getText()+"','"+cp_valor.getText()+"','"+cp_descricao.getText()+"')";
try {
cad_servico.statement.executeUpdate(Insert);
} catch (SQLException erro) {
JOptionPane.showMessageDialog(null,"Erro na Tentativa de Gravar o Registro"+erro);
}
}
private void bt_cancelarActionPerformed(java.awt.event.ActionEvent evt) {
cancelar();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Cad_Servico().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton bt_cancelar;
private javax.swing.JButton bt_salvar;
private javax.swing.JTextField cp_codigo;
private javax.swing.JTextArea cp_descricao;
private javax.swing.JTextField cp_nome;
private javax.swing.JTextField cp_valor;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTable jTable1;
// End of variables declaration
public void cancelar(){
int resposta = JOptionPane.showConfirmDialog(null, "Tem Certeza que Deseja Cancelar?", "Cancelar", JOptionPane.YES_NO_OPTION);
if (resposta == JOptionPane.YES_OPTION) {
dispose();
}
}
}
// Classe Conexao
[code]
package utilitarios;
import java.sql.;
import javax.swing.;
public class Conexao{
final private String driver=“sun.jdbc.odbc.JdbcOdbcDriver”;
final private String url=“jdbc:odbc:banco”;
final private String usuario="";
final private String senha="";
private Connection conexao;
public Statement statement;
public ResultSet resultset;
public boolean conecta(){
boolean result = true;
try{
Class.forName(driver);
conexao = DriverManager.getConnection(url, usuario , senha);
JOptionPane.showMessageDialog(null,“conectou”);
}
catch (ClassNotFoundException Driver)
{
JOptionPane.showMessageDialog(null,“Driver não Localizado:”+Driver);
result = false;
}
catch(SQLException fonte)
{
JOptionPane.showMessageDialog(null,“Erro na conexão com o banco”+ fonte);
result = false;
}
return result;
}
public void desconecta(){
boolean result = true;
try
{
conexao.close();
JOptionPane.showMessageDialog(null,“Conexao Fechada”);
}catch(SQLException erroSQL){
JOptionPane.showMessageDialog(null,“Não Foi Possivel Fechar a Conexão com o Banco”+erroSQL.getMessage());
result=false;
}
}
public void execulteSql(String sql)
{
try{
statement = conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
resultset = statement.executeQuery(sql);
}
catch(SQLException sqlex){
JOptionPane.showMessageDialog(null,“Erro ao execultar comando SQL”);
}
}
}[/code]
Estou usando o Access para testes, pq tive muitos problemas com o Firebird…
Já agradeço… Valew

