Bom amigos…
Fiz uma estutura simples com o DAO e a Classe FUNCIONARIO. Conectei atraves do NetBeans, tudo perfeito. ok.
Mas na hora de compilar recebo um erro de NULL POINTER EXCEPTION q está me tirando do sério…
Se alguem puder dar uma solução… segue abaixo o programa.
CLASSE FUNCIONARIO
[code]package cadastrofuncionario;
/**
*
-
@author Negrão
*/
public class Funcionario {
private String nome;
private int rg;
private String cpf;
private int nasc;
private char sexo;
private double salFunc;
DAO db;public Funcionario() {
}
public String getNome() {
return nome;
}public void setNome(String nome) {
this.nome = nome;
}public int getRg() {
return rg;
}public void setRg(int rg) {
this.rg = rg;
}public String getCpf() {
return cpf;
}public void setCpf(String cpf) {
this.cpf = cpf;
}public int getNasc() {
return nasc;
}public void setNasc(int nasc) {
this.nasc = nasc;
}public char getSexo() {
return sexo;
}public void setSexo(char sexo) {
this.sexo = sexo;
}public double getSalFunc() {
return salFunc;
}public void setSalFunc(double salFunc) {
this.salFunc = salFunc;
}public void insereFuncionario(){
String tb= “func”;
String cp= “(nmFunc)”;
String vls= “(’”+nome+"’)";
db.insere(tb, cp, vls);}
}[/code]
CLASSE DAO
[code]package cadastrofuncionario;
import java.sql.*;
public class DAO {
Connection con;
Statement st;
ResultSet res;
int upd;
StringBuilder msg= new StringBuilder();
public DAO() {
}
public void conecta(){
try{
Class.forName("com.mysql.jdbc.Driver");
con= DriverManager.getConnection("jdbc:mysql://localhost/projeto","","");
st= con.createStatement();
}catch(ClassNotFoundException e){
msg.append("Erro Driver");
}
catch(SQLException e){
msg.append("Não conectou no banco");
}
} // FIM CONECTA
public void insere(String tb, String campos, String vals){
conecta();
try{
String q= "insert into "+tb+" "+campos+ " values "+ vals;
//Executar o SQL
upd= st.executeUpdate(q);
// Teste do banco
if (upd!=0)
msg.append("Insercao OK!");
else
msg.append("Erro: Insercao");
}catch(SQLException e){
msg.append("Erro: SQL insercao");
}
desconecta();
}// FIM INSERE
public void desconecta(){
try{
con.close();
}catch(SQLException e){
msg.append("Erro Desconecta");
}
} // FIM DESCONECTA
//RETORNAR MENSAGENS
public String getMsg(){
return msg.toString();
}
}[/code]
CLASSE MAIN
[code]package cadastrofuncionario;
/**
*
-
@author Negrão
*/
public class Main {/** Creates a new instance of Main */
public Main() {
}/**
-
@param args the command line arguments
*/
public static void main(String[] args) {
Funcionario f= new Funcionario();
DAO dbresp;
f.setNome(“Sonia”);f.insereFuncionario();
dbresp = new DAO();
}
-
}[/code]
ERRO INFORMADO
Compiling 1 source file to C:\Documents and Settings\Negrão\CadastroFuncionario\build\classes
compile:
run:
Exception in thread "main" java.lang.NullPointerException
at cadastrofuncionario.Funcionario.insereFuncionario(Funcionario.java:81)
at cadastrofuncionario.Main.main(Main.java:30)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
Linha 81 do erro
db.insere(tb, cp, vls);
Linha 30
f.insereFuncionario();