Olá Pessoal!!!, Ocorre um erro de tratamento de excessão quando o sistema tenta fazer a conexão com o banco de dados que é o ACCESS, preciso de orientação amigos!!!
Esse é o codigo do cadastro
import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Cadastrar extends JFrame implements ActionListener
{
JLabel label1,label2,label3,label4,label5;
JButton btGravar,btAlterar,btExcluir,btNovo,btLocalizar, btCancelar;
static JTextField tfCodigo,tfInstrumento,tfCategoria,tfMarca,tfValor;
JPanel painel1 = new JPanel();
String Instrumento = "select * from Instrumento";
public static void main(String args[])
{
JFrame janela = new Cadastrar();
janela.setUndecorated(true);
janela.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
janela.setVisible(true);
}
Cadastrar()
{
painel1.setLayout(new FlowLayout(FlowLayout.LEFT));
label1 = new JLabel("Codigo ");
label2 = new JLabel("Instrumento");
label3 = new JLabel("Categoria");
label4 = new JLabel("Marca");
label5 = new JLabel("Valor ");
tfCodigo = new JTextField(10);
tfCodigo.addActionListener(this);
tfInstrumento = new JTextField(31);
tfCategoria = new JTextField(9);
tfMarca = new JTextField(18);
tfValor = new JTextField(11);
btGravar=new JButton("Gravar");
btAlterar=new JButton("Alterar");
btExcluir=new JButton("Excluir");
btLocalizar=new JButton("Localizar");
btNovo=new JButton("Novo");
btCancelar=new JButton("Cancelar");
btGravar.addActionListener(this);
btAlterar.addActionListener(this);
btExcluir.addActionListener(this);
btLocalizar.addActionListener(this);
btNovo.addActionListener(this);
btCancelar.addActionListener(this);
painel1.add(label1); painel1.add(tfCodigo);
painel1.add(label2); painel1.add(tfInstrumento);
painel1.add(label3); painel1.add(tfCategoria);
painel1.add(label4); painel1.add(tfMarca);
painel1.add(label5); painel1.add(tfValor);
painel1.add(btNovo); painel1.add(btLocalizar);
painel1.add(btGravar); painel1.add(btAlterar);
painel1.add(btExcluir); painel1.add(btCancelar);
getContentPane().add(painel1);
setTitle("Cadastramento de Instrumentos");
setBounds(200,100,610,120);
setResizable(false);
setBotoes(true,true,false,false,false,false);
if (!BD.getConnection())
{
JOptionPane.showMessageDialog(null, "Falha na conexão, o sistema será fechado!");
System.exit(0);
}
}
public void actionPerformed(ActionEvent e)
{
if (e.getSource()==btNovo)
{
setBotoes(false,false,true,false,false,true);
limpaCampos();
return;
}
if (e.getSource()==btCancelar)
{
setBotoes(true,true,false,false,false,false);
limpaCampos();
return;
}
if (e.getSource()==btGravar || e.getSource()==btAlterar)
{
String sql = "";
if (e.getSource()==btGravar)
{
sql = "INSERT INTO Instrumento (Codigo,Instrumento,Categoria," +
"Marca,Valor) Values ('" +
tfCodigo.getText() + "','" +
tfInstrumento.getText() + "','" +
tfCategoria.getText() + "','" +
tfMarca.getText() + "','" +
tfValor.getText() + "')";
}
if (e.getSource()==btAlterar)
{
sql = "UPDATE Instrumento SET " +
"Codigo='" + tfCodigo.getText() + "'," +
"Instrumento='" + tfInstrumento.getText() + "'," +
"Categoria='" + tfCategoria.getText() + "'," +
"Marca='" + tfMarca.getText() + "'," +
"Valor='" + tfValor.getText() + "' " +
"WHERE Codigo = '" + tfCodigo.getText() + "'";
}
int r = BD.runSQL(sql);
if (r==1)
{
JOptionPane.showMessageDialog(null,"Operação realizada com sucesso!");
setBotoes(true,true,false,true,true,false);
}
else
JOptionPane.showMessageDialog(null,"Problemas na operação, verifique se você digitou os campos corretamente!");
BD.setResultSet(Instrumento);
}
if (e.getSource()==btExcluir)
{
String sql = "SELECT Codigo, Instrumento FROM Instrumento Where Codigo = '"+tfCodigo.getText()+"'";
BD.setResultSet(sql);
String nome = "";
try
{
BD.resultSet.next();
nome = "Deletar o Instrumento: " + BD.resultSet.getString("Instrumento");
}
catch(SQLException ex1)
{
JOptionPane.showMessageDialog(null,"Instrumento nao cadastrado!");
tfCodigo.requestFocus();
BD.setResultSet(Instrumento);
return;
}
int n = JOptionPane.showConfirmDialog(null,nome," ",JOptionPane.YES_NO_OPTION);
if (n==JOptionPane.YES_OPTION)
{
sql = "DELETE FROM Instrumento Where codigo = '" + tfCodigo.getText() + "'";
int r = BD.runSQL(sql);
if (r==1)
JOptionPane.showMessageDialog(null,"Exclusão realizada com sucesso");
else
JOptionPane.showMessageDialog(null,"Não foi possível excluir o Instrumento");
limpaCampos();
setBotoes(true,true,false,false,false,false);
}
BD.setResultSet(Instrumento);
}
if (e.getSource()==btLocalizar || e.getSource()==tfCodigo)
{
try
{
String sql = "SELECT * FROM Instrumento Where Codigo = '" + tfCodigo.getText() + "'";
BD.setResultSet(sql);
if (BD.resultSet.next())
{
atualizaCampos();
tfInstrumento.requestFocus();
setBotoes(true,true,false,true,true,false);
}
else
{
JOptionPane.showMessageDialog(null,"Instrumento nao Encontrado!");
tfCodigo.requestFocus();
BD.setResultSet(Instrumento);
}
}
catch(Exception erro) {}
}
}
public static void limpaCampos()
{
tfCodigo.setText("");
tfInstrumento.setText("");
tfCategoria.setText("");
tfMarca.setText("");
tfValor.setText("");
tfCodigo.requestFocus();
}
public void atualizaCampos()
{
try
{
tfCodigo.setText(BD.resultSet.getString("Codigo"));
tfInstrumento.setText(BD.resultSet.getString("Instrumento"));
tfCategoria.setText(BD.resultSet.getString("Categoria"));
tfMarca.setText(BD.resultSet.getString("Marca"));
tfValor.setText(""+BD.resultSet.getDate("Valor"));
}
catch(SQLException erro) { }
}
public void setBotoes(boolean bNovo,boolean bLocalizar,boolean bGravar,boolean bAlterar,boolean bExcluir,boolean bCancelar)
{
btNovo.setEnabled(bNovo);
btLocalizar.setEnabled(bLocalizar);
btGravar.setEnabled(bGravar);
btAlterar.setEnabled(bAlterar);
btExcluir.setEnabled(bExcluir);
btCancelar.setEnabled(bCancelar);
}
}
Codigo que faz a conexão com o banco de dados!
import java.sql.*;
public class BD
{
public static Connection connection = null;
public static Statement statement = null;
public static ResultSet resultSet = null;
public static final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
public static final String URL = "jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=E:/Bancos/LIMusicais.mdb";
/**
* método que faz conexão com o banco de dados
* retorna true se houve sucesso, ou false em caso negativo
*/
public static boolean getConnection()
{
try
{
Class.forName(DRIVER);
connection = DriverManager.getConnection(URL);
statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
System.out.println("Conectou");
return true;
}
catch(ClassNotFoundException erro)
{
erro.printStackTrace();
return false;
}
catch(SQLException erro)
{
erro.printStackTrace();
return false;
}
}
/**
* Fecha ResultSet, Statement e Connection
*/
public static void close()
{
closeResultSet();
closeStatement();
closeConnection();
}
private static void closeConnection()
{
try
{
connection.close();
System.out.println("Desconectou");
}
catch(SQLException erro)
{
erro.printStackTrace();
}
}
private static void closeStatement()
{
try
{
statement.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
private static void closeResultSet()
{
try
{
resultSet.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
/**
* Carrega o resultSet com o resultado do script SQL
*/
public static void setResultSet(String sql)
{
try
{
resultSet = statement.executeQuery(sql);
}
catch(SQLException erro)
{
erro.printStackTrace();
}
}
/**
* Executa um script SQL de atualização
* retorna um valor inteiro contendo a quantidade de linhas afetadas
*/
public static int runSQL(String sql)
{
int quant = 0;
try
{
quant = statement.executeUpdate(sql);
}
catch(SQLException erro)
{
erro.printStackTrace();
}
return quant;
}
}
esse codigo com executa uma mensagem de sucesso, quando o acesso ao banco esta ok!
import java.sql.*;
import javax.swing.*;
class StringConexao
{
public static void main(String[] args)
{
final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
final String URL = "jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=E:/LIMusicais.mdb";
try
{
Class.forName(DRIVER);
Connection connection = DriverManager.getConnection(URL);
JOptionPane.showMessageDialog(null,"Conexao realizada com sucesso");
connection.close();
}
catch(ClassNotFoundException erro)
{
JOptionPane.showMessageDialog(null,"Driver JDBC-ODBC não encontrado!");
}
catch(SQLException erro)
{
JOptionPane.showMessageDialog(null,"Problemas na conexao com a fonte de dados");
}
}
}
Desde já agradeço pelas dicas!!!!
Abraço