Galera,
Estou estudando o relacionamento entre JSP, Fabrica de Conexão e DAO, utilizando o MySQL. Entretanto, estou com problema ao inserir dados no MySQL. Já pesquisei na Internet e também na apostila da Caelum, só que não obtive o êxito esperado. O erro que aparece é:
type Exception reportmessage
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /inserir.jsp at line 16
13:
14: try{
15: PaisDao dao = new PaisDao();
16: dao.insere(p);
17: }
18: catch (SQLException e) {
19: throw new SQLException(e);Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)root cause
java.lang.NullPointerException
br.ccp.dao.PaisDao.insere(PaisDao.java:31)
org.apache.jsp.inserir_jsp._jspService(inserir_jsp.java:73)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.
Aqui vai as minhas classes e o arquivo JSP. Obrigada!
Inserir.JSP
<%@page import = "br.ccp.modelo.*" %>
<%@page import = "br.ccp.dao.*" %>
<%@page import = "br.ccp.fabrica.*" %>
<%@page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<%
Pais p = new Pais ();
p.setPais(request.getParameter("pais"));
p.setCapital(request.getParameter("capital"));
try{
PaisDao dao = new PaisDao();
dao.insere(p);
}
catch (SQLException e) {
throw new SQLException(e);
}
out.println("Dados enviados com sucesso!!!");
%>
PaisDao.java
package br.ccp.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import br.ccp.fabrica.FabricaDeConexao;
import br.ccp.modelo.Pais;
public class PaisDao {
public PaisDao(){
}
private Connection conection;
public void getConexao()throws SQLException {
conection = FabricaDeConexao.getConnection();
}
public void insere(Pais pais)throws SQLException {
PreparedStatement stmt = this.conection.prepareStatement (" insert into pais (pais, capital, idioma, populacao, moeda) values (?,?,?,?,?)");
stmt.setString(1,pais.getPais());
stmt.setString(2,pais.getCapital());
stmt.execute();
conection.commit();
stmt.close();
}
}
FabricaDeConexao.java
package br.ccp.fabrica;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class FabricaDeConexao {
public FabricaDeConexao(){
}
public static Connection getConnection()throws SQLException {
try {
Class.forName("com.mysql.jdbc.Driver");
return DriverManager.getConnection("jdbc:mysql://localhost:3306/pais", "root", "XXX");
}
catch(ClassNotFoundException ex){
throw new SQLException (ex.getMessage());
}
catch(Exception e){
throw new SQLException (e.getMessage());
}
}
}