Struts + MySQL

1 resposta
Y

o com o seguinte problema. Tenho um formulário para cadastrar no BD, passo as informações e consigo trabalhar com eles na classe CadastroAction.java, porém quando invoco uma classe para cadastrar essas informações no BD, ele apresenta o seguinte erro:

500 Servlet Exception

java.lang.NullPointerException
at projeto.DAO.insere(DAO.java:27)
at projeto.CadastroAction.execute(CadastroAction.java:24)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:154)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:92)
at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:106)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:173)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:274)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:511)
at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:520)
at com.caucho.util.ThreadPool.run(ThreadPool.java:442)
at java.lang.Thread.run(Thread.java:595)

Sou novo em JAVA, se alguém puder ajudar...

CadastroForm.java
package projeto;
 import org.apache.struts.action.*;
 import javax.servlet.http.*;
 
 public class CadastroForm extends ActionForm 
 {
 private String nome;
 private String login;
 private String password;
 private String email;
 
 public String getNome() { return (nome); }
 public void setNome(String nome) { this.nome = nome; }
 
 public String getLogin() { return (login); }
 public void setLogin(String login) { this.login = login; }
 
 public String getPassword() { return (password); }
 public void setPassword(String password) { this.password = password; }
 
 public String getEmail() { return (email); }
 public void setEmail(String nome) { this.email = email; }
 
 public void reset(ActionMapping mapping, HttpServletRequest request)
 {
 this.nome = "";
 this.login = "";
 this.password = "";
 this.email = "";
 }
 }
CadastroAction.java
package projeto;
 import java.io.*;
 import org.apache.struts.action.*;
 import javax.servlet.ServletException;
 import javax.servlet.http.*;
 import java.sql.*;
 
 public final class CadastroAction extends Action
 {
 
 public ActionForward execute(ActionMapping mapping, ActionForm form,
 HttpServletRequest request, HttpServletResponse response) throws Exception
 {
 CadastroForm cadastroForm = (CadastroForm) form;
 String login = cadastroForm.getLogin();
 String nome = cadastroForm.getNome();
 String password = cadastroForm.getPassword();
 String email = cadastroForm.getEmail();
 
 projeto.DAO inclui = new projeto.DAO();
 String tabela = "usuarios";
 String campos = "(nome,login,password,email)";
 String valores = "('"+nome+"', '"+login+"', '"+password+"', '"+email+"')";
 inclui.insere(tabela,campos,valores);
 String msg = inclui.getMsg();
 
 if (msg.equals("sucesso"))
 return (mapping.findForward("sucesso"));
 else {
 cadastroForm.reset(mapping, request); 
 return (mapping.findForward("fracasso"));
 }
 }
 
 }
DAO.java
package projeto;
 import java.sql.*;
 
 public class DAO{
 private Connection con;
 private Statement st;
 private int rs;
 
 private String n, f, msg;
 
 public void conecta()
 {
 try{
 Class.forName("org.gjt.mm.mysql.Driver");
 con = DriverManager.getConnection ("jdbc:mysql://localhost/projeto","root","");
 st=con.createStatement();
 }
 catch (ClassNotFoundException e) 
 { msg="Não carregou o Driver!"; }
 catch (SQLException e2) 
 { msg="Não conectou!";}
 }
 
 public void insere(String tb, String cp, String vl){
 conecta();
 try{
 st=con.createStatement();
 String q="INSERT INTO"+tb+cp+"VALUES"+vl;
 rs=st.executeUpdate(q);
 if(rs!=0)
 msg="sucesso";
 else
 msg="fracasso";
 }
 catch(SQLException e)
 { msg="erro insere"; }
 desconecta();
 }
 
 public void desconecta()
 {
 try
 { st.close();
 con.close();
 }
 catch (SQLException e) 
 {msg="Erro ao Desconectar";}
 }
 
 public String getMsg()
 {
 return msg;
 }
 
 }

1 Resposta

M

Olá,

Primeiramente remova a instrução do método conectar:

st=con.createStatement();

depois verifique se conectou, debugando este método de inserir aí.

boa sorte.

:joia:

Criado 6 de agosto de 2007
Ultima resposta 7 de ago. de 2007
Respostas 1
Participantes 2