Problemas no JBDC

4 respostas
jsnpereira

Olá, pessoal!

Estou tentando para enviar o banco de dados, mas ocorreu a problemas, verifiquei e não encontrei a resolução de problemas.

Mensagem de Erro

GRAVE: Servlet.service() for servlet ServletCadastro threw exception
java.lang.NullPointerException
	at Servlet.DAO.incluir(DAO.java:23)
	at Servlet.ServletCadastro.doGet(ServletCadastro.java:24)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Unknown Source)
12/04/2011 01:19:57 org.apache.catalina.core.StandardContext reload
INFO: Reloading this Context has started
12/04/2011 01:19:57 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
GRAVE: The web application [/ServletComJSP2] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
12/04/2011 01:19:57 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
GRAVE: The web application [/ServletComJSP2] appears to have started a thread named [MySQL Statement Cancellation Timer] but has failed to stop it. This is very likely to create a memory leak.

O código do DAO fica

public class CadastroDAO {
	public void incluir(Cadastro c){
		
		try {
			Class.forName("com.mysql.jdbc.Driver");
			
			Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/testecadastro","root","");
			
			PreparedStatement st = conn.prepareStatement("Insert into cadastro value(?,?,?)");
			
			st.setInt(0,(Integer) null);
			st.setString(1,c.getNome());
			st.setInt(2,c.getIdade());
			
			st.executeUpdate();
			
			
		} catch (ClassNotFoundException e) {
			System.err.println(e.getMessage());
			e.printStackTrace();
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			e.printStackTrace();
		}
	}

}

Espero que me ajudem… Obrigado!!

4 Respostas

J

Tudo bom?

Encontrei um erro no seguinte trecho:

st.setInt(0,(Integer) null);  
st.setString(1,c.getNome());  
st.setInt(2,c.getIdade());

E pelo que aprendi, o correto seria:

st.setInt(1,(Integer) null);  
st.setString(2,c.getNome());  
st.setInt(3,c.getIdade());

Veja se te ajuda
Abraços

jsnpereira

Agora não precisa mais…

Acabei de encontrar para resolver problemas.

Antes estava

st.setInt(0,(Integer) null);  
st.setString(1,c.getNome());  
st.setInt(2,c.getIdade());

Agora acabei alterar alguns.

st.setInt(1,0);
st.setString(2,c.getNome());
st.setInt(3,c.getIdade());

:smiley:

jsnpereira

Javaxxxx:
Tudo bom?

Encontrei um erro no seguinte trecho:

st.setInt(0,(Integer) null);  
st.setString(1,c.getNome());  
st.setInt(2,c.getIdade());

E pelo que aprendi, o correto seria:

st.setInt(1,(Integer) null);  
st.setString(2,c.getNome());  
st.setInt(3,c.getIdade());

Veja se te ajuda
Abraços

Muito obrigado pelo reforço a ajudar… mas tinha descobrindo antes e nem visto você que respondeu… valeu!

Mr.style

Só para fechar… a NullPointerException ocorre sempre que tenta acessar um Objeto nulo, o que estava acontecendo anteriormente. E lembrando que há uma grande diferença entre 0, “” e null.

Criado 12 de abril de 2011
Ultima resposta 12 de abr. de 2011
Respostas 4
Participantes 3