[RESOLVIDO]Ajuda para gravar em BD

5 respostas
J

Olá,
Preciso validar login/senha, mas não estou conseguindo gravar no BD mysql.
Tenho um novaSenha.jsp utilizando ContatoDAO e FabricaConexao, mas o console do Eclipse retorna erro na linha 14 de FabricaConexao e na linha 30 do CadastraSenha (Connection conexao = fabrica.getConnection();).

Por favor, alguém pode me ajudar?

Classe logSenha.java

public class logsenha {
     private int iduser;
     private String login;
     private String senha;
     public int getIduser() {
     return iduser;
	}
     public void setIduser(int iduser) {
        this.iduser = iduser;
	}
     public String getLogin() {
         return login;
	}
     public void setLogin(String login) {
         this.login = login;
	}
     public String getSenha() {
         return senha;
	}
     public void setSenha(String senha) {
         this.senha = senha;
	}
}

novaSenha.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html> <head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Cadastrar Senha/Login</title>
<script language="JavaScript">
    function validaForm(){
     d = document.cadastro;
    if (d.login.value == ""){
    alert("O campo " + d.login.name + " deve ser preenchido!");
    d.login.focus();
    return false;}
    if (d.senha.value == ""){
    alert("O campo " + d.senha.name + " deve ser preenchido!");
    d.senha.focus();
    return false;
     }
   return true;
     }
</script>
</head><body><br><br>
<form name="cadastro" method="get" action="cadastraSenha" onSubmit="return validaForm()">
<table width="20%" border="1" cellpadding="2" cellspacing="0">
<tr><td colspan="2" align="center">Validação de formulário</td></tr>
<tr><td>Login:</td><td><input name="login" type="text"></td></tr>
<tr><td>Senha:</td><td><input name="senha" type="password"></td></tr>
<tr><td align="center"><input name="acessar" type="submit" value="Acessar"></td>
<td align="center"><input name="limpar" type="reset" value="Limpar"></td></tr>
</table></form>
</body></html>

FabricaConexao.java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class FabricaConexao {
    public static Connection getConnection() throws SQLException {
	try {
    	        Class.forName("com.mysql.jdbc.Driver");
		System.out.println("Conectando o banco");
		return DriverManager.getConnection("jdbc:mysql://localhost:3306/loginsenha", "root", "123456");		
	    } catch (ClassNotFoundException e) {
	    	throw new SQLException(e.getMessage());
	    }	    	
                }
    }

ContatoDAO.java

import java.sql.Connection;
import java.sql.SQLException;
import com.mysql.jdbc.PreparedStatement;

public class ContatoDAO {
	private Connection conexao;
	public ContatoDAO() throws SQLException {
		this.conexao = FabricaConexao.getConnection();
	}
	public void adiciona(logsenha contato) throws SQLException {
		PreparedStatement stmt = (PreparedStatement) this.conexao.prepareStatement("insert into usuarios (login,senha) values (?,?)");
		stmt.setString(1, contato.getLogin());
		stmt.setString(2, contato.getSenha());
		stmt.execute();
		stmt.close();
	}
}

cadastraSenha.java

import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

 public class cadastraSenha extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
   static final long serialVersionUID = 1L;
	public cadastraSenha() {
		super();
	}   	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     try {
	String login = request.getParameter("login");
	String senha = request.getParameter("senha");
	logsenha novoContato = new logsenha();
	novoContato.setLogin(login);
	novoContato.setSenha(senha);
                
                FabricaConexao fabrica = new FabricaConexao();
	Connection conexao = fabrica.getConnection();

	ContatoDAO dao = new ContatoDAO();
	dao.adiciona(novoContato);

	response.sendRedirect("novaSenha.jsp"); 
   } 
        catch (SQLException e) {
	e.printStackTrace();
	}
	}  	
     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	}   	  	    
}

5 Respostas

Adelar

Olá,
posta o erro que está ocorrendo. Use as tags [Code] no início e no fim do código… fica mais fácil de ver :wink:

Att.

J

Este é o erro que aparece no console do Eclipse.

12/10/2010 19:09:06 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Arquivos de programas\Java\jre6\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Arquivos de programas\Java\jre6\bin\client;C:\Arquivos de programas\Java\jre6\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Arquivos de programas\Java\jdk1.6.0_21\bin;C:\Arquivos de programas\MySQL\MySQL Server 5.1\bin
12/10/2010 19:09:06 org.apache.tomcat.util.digester.SetPropertiesRule begin
AVISO: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Aula' did not find a matching property.
12/10/2010 19:09:06 org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
12/10/2010 19:09:06 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 874 ms
12/10/2010 19:09:06 org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
12/10/2010 19:09:06 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.29
12/10/2010 19:09:07 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
12/10/2010 19:09:07 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
12/10/2010 19:09:07 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/47  config=null
12/10/2010 19:09:07 org.apache.catalina.startup.Catalina start
INFO: Server startup in 859 ms
java.sql.SQLException: com.mysql.jdbc.Driver
	at FabricaConexao.getConnection(FabricaConexao.java:14)
	at cadastraSenha.doGet(cadastraSenha.java:30)
	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:857)
	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)
[code]
furutani

Olá

Falta colocar o jar do driver mysql no classpath

java.sql.SQLException: com.mysql.jdbc.Driver
J

Valeu furutani!
Sou iniciante e esqueci de colocar o drive na pasta lib do Apache-tomcat.
Ficou certinho, conferi e gravou no BD!
Agora vou fazer a listagem dos dados.

thanks,
ju.

furutani

Maravilha! :smiley:

Criado 11 de outubro de 2010
Ultima resposta 12 de out. de 2010
Respostas 5
Participantes 3