Erro na conexao com Banco de Dados

9 respostas
bonny

Pessoal. Estou com o seguinte problema: minha conexão com o banco de dados não está funcionando quando eu a chamo através de uma servlet.
Tenho uma classe para a conexão , uma página html onde tenho meu form e uma servlet que vai se encarregar de chamar a classe de conexão. Porém,
me notifiquei que o erro ocorre quando a classe de conexão é chamamda pela servlet pois quando a chamo diretamente através de um método main, ela se conecta com o banco normalmente.

public class Dao {

static final String driver = "com.mysql.jdbc.Driver";
private Connection conexao;


public void conectaBanco() 
{
try
{
 conexao = DriverManager.getConnection("jdbc:mysql://localhost/pessoa","root","");
Class.forName(driver);
     }

catch(SQLException sqle){System.out.println("erro1");}
catch(ClassNotFoundException cnfe){System.out.println("Falha na Conexao. Banco não encontrado");}
}

public void adicionar(PessoaBean pessoa)// throws SQLException
 
{
	try{
	String sql = "insert into contatos(nome, endereco,email) values(?,?,?)";
	PreparedStatement prep = conexao.prepareStatement(sql);
	

	prep.setString(1,pessoa.getNome());
	prep.setString(2,pessoa.getEndereco());
	prep.setString(3,pessoa.getEmail());
	
	//para teste
	/*prep.setString(1,"teste");
	prep.setString(2,"teste@");
	prep.setString(3,"testeRua");*/
	
	prep.execute();
	conexao.close();
	
	}
	catch(SQLException sqle){System.out.println("erro de sintaxe sql2");}
	catch(RuntimeException ee){;}

Alguém poderia me ajudar com a problemática?
OBS: minha servlet chama o método conectaBanco().

}

9 Respostas

E

Qual é o erro exibido ? Tente dar um {System.out.println(sqle);} em vez de {System.out.println(“erro1”);} para melhor visualizar o problema.

bonny

erro: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/pessoa

lembrando que a conexão feita através de uma chamada vinda de dentro da própria classe conecta normalmente.

E

Coloque a linha “Class.forName(driver);” antes da getConnection. Veja se resolve.

Kanin_Dragon

Linda Jovem,

Realize a alteração informada pelo colega cima.

Bjos

bonny

Blz. Fiz o que foi sugerido, só que agora, ele captura a outra exceção…

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

Poxa, tô fazendo a chamada ao método que conecta de dentro da classe, mesmo após a mudança, e funciona normalmente. Quando faço essa chamada de fora ocorre o erro.

tiago.vt

bonny:
Blz. Fiz o que foi sugerido, só que agora, ele captura a outra exceção…

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

Poxa, tô fazendo a chamada ao método que conecta de dentro da classe, mesmo após a mudança, e funciona normalmente. Quando faço essa chamada de fora ocorre o erro.

Coloque essa linha Class.forName(driver); em cima da conexao = DriverManager.getConnection(“jdbc:mysql://localhost/pessoa”,“root”,"");

bonny
Pessoal, meu código está assim: E não funciona
public class Dao {
	
	static final String driver = "com.mysql.jdbc.Driver";
	private Connection conexao;
	
	
	public void conectaBanco() 
	{
	try
	{
     Class.forName(driver);
	 conexao = DriverManager.getConnection("jdbc:mysql://localhost:3306/pessoa","root","");
	
    JOptionPane.showMessageDialog(null,"concetou legal!");
	}//try
	catch(SQLException sqle){System.out.println(sqle);}
	catch(ClassNotFoundException cnfe){System.out.println(cnfe);}
	}

	public void adicionar(PessoaBean pessoa)// throws SQLException
	 
	{
		try{
		String sql = "insert into contatos(nome, endereco,email) values(?,?,?)";
		PreparedStatement prep = conexao.prepareStatement(sql);
		
	
		prep.setString(1,pessoa.getNome());
		prep.setString(2,pessoa.getEndereco());
		prep.setString(3,pessoa.getEmail());
		
		//para teste
		/*prep.setString(1,"teste");
		prep.setString(2,"teste@");
		prep.setString(3,"testeRua");*/
		
		prep.execute();
		conexao.close();
		
		JOptionPane.showMessageDialog(null,"Adicionar funcionando");
		
		}
		catch(SQLException sqle){System.out.println("erro de sintaxe sql2");}
		catch(RuntimeException ee){;}
		
		
		
		}
		
	
	/*public static void main(String rgas[]){
		
         new Dao().conectaBanco();
        
		
		
	} */
}
tiago.vt

o jar do mysql foi adicionado corretamente no projeto, pq aquele erro que você coloco que ele não está encontrando.

bonny

Rapaz… creio que tenha sido sim pq a classe funciona direito quando uso o metodo main… então… eu até descartei essa possibilidade.
Já fiz teste de inserção no banco e funcionou, porém, chamar conectaBanco() da minha servlet é que tá dando mó dor de cabeça…

Criado 21 de março de 2011
Ultima resposta 22 de mar. de 2011
Respostas 9
Participantes 4