JSP e conexao com BD

Pessoal será que alguém poderia me explicar como é que eu faço a conexao com o banco de dados e uso a partir do jsp. eu ja tentei de todas as formas que eu conheço e uso no java normal e não da certo.

aqui estao os codigo que eu fiz, eles funcionam direito num projeto java normal, mas nao conecta quando uso pelo jsp:

[code]/** Cria a conexção com o banco de dados*/
package webcontabil;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class ClasseConexao
{
public Connection con = null;
static final String JDBC_DRIVER = “com.mysql.jdbc.Driver”;
static final String DATABASE_URL = “jdbc:mysql://localhost/webcontabil”;
static final String USUARIO = “root”;
static final String SENHA = “27410”;
PreparedStatement st;
public ClasseConexao()
{
try
{
Class.forName( JDBC_DRIVER );
con = DriverManager.getConnection( DATABASE_URL, USUARIO, SENHA );
}
catch( ClassNotFoundException e )
{
System.out.println(“JDBC DRIVER NAO ENCONTRADO NO CLASS PATH” );
System.out.println( e.getMessage() );
}
catch( SQLException e )
{
System.out.println( “NÃO CONECTADO COM O BANCO” );
}
}

}[/code]

[code]
<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1”
pageEncoding=“ISO-8859-1”%>

Insert title here

<%= teste.insereB() %>

[/code]

Se alguém puder ajudar eu agradeço.
Agraço.

cade a classe TesteB lea tem um contrutor dummy?
posta o erro ai pra gente dar uma olhada

Amigo eu peguei esse exemplo numa apostila. Eu nao sei o que é esse construtor dummy.

Eu coloquei uma String pra retornar se deu certo ou nao e ela pega o classnotfound. Acho que da erro nessa parte.

Se vc souber como faz pra conectar me passa ai amigo.

abraço.

o bean que vc ta chamando tem um construtor dummy?
construtor dummy = public Clientes(){} e´um contrutor sem argumentos
posta o codigo td ai pra gente ver ai + pessoas vao te ajudar
falow t+

Olha esse codigo que eu postei foi um teste que eu fiz a parte so pra ver se conectava. O que eu tou fazendo é outro, eu vou postar aqui:

[code]

<%@include file='cabecalho.jsp' %>

<jsp:useBean id=“testebanco” class=“webcontabil.TesteB”/>

<% testebanco.setNome( “Jorge” );
testebanco.setCpf( “524124121” );
testebanco.setSexo( “m” );
testebanco.setPai( “Joao” );
testebanco.setMae( “Maria” );
testebanco.insere();
%>

code]

[code]import java.sql.*;

public class TesteB
{
private String nome;
private String cpf;
private String sexo;
private String pai;
private String mae;
PreparedStatement st;
Connection conn = null;
static final String JDBC_DRIVER = “com.mysql.jdbc.Driver”;
static final String DATABASE_URL = “jdbc:mysql://localhost/webcontabil”;
static final String USUARIO = “root”;
static final String SENHA = “27410”;

public TesteB()
{
	try
	{
		Class.forName( JDBC_DRIVER );
		conn = DriverManager.getConnection( DATABASE_URL, USUARIO, SENHA );
	}
	catch(SQLException e )
	{
		e.printStackTrace();
	}
	catch( ClassNotFoundException e )
	{
		System.out.println("JDBC DRIVER NAO ENCONTRADO NO CLASS PATH" );
		System.out.println( e.getMessage() );
	}
}

public void insere()
{
	try
	{
		st = conn.prepareStatement("insert into teste(nome, cpf, sexo, pai, mae)" +
				" values(?,?,?,?,?)");
		
		st.setString(1, getNome() );
		st.setString(2, getCpf() );
		st.setString(3, getSexo() );
		st.setString(4, getPai() );
		st.setString(5, getMae() );
		
		st.executeUpdate();
		
		st.close();
		
		
	}
	catch(SQLException e )
	{
		e.printStackTrace();
	}
}

public String getNome() {
	return nome;
}

public void setNome(String nome) {
	this.nome = nome;
}

public String getCpf() {
	return cpf;
}

public void setCpf(String cpf) {
	this.cpf = cpf;
}

public String getSexo() {
	return sexo;
}

public void setSexo(String sexo) {
	this.sexo = sexo;
}

public String getPai() {
	return pai;
}

public void setPai(String pai) {
	this.pai = pai;
}

public String getMae() {
	return mae;
}

public void setMae(String mae) {
	this.mae = mae;
}

}
[/code]

e isso é o que aparece no browser:

[code]type Exception report

message

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 /confirm_pf.jsp at line 16

13: testebanco.setSexo( “m” );
14: testebanco.setPai( “Joao” );
15: testebanco.setMae( “Maria” );
16: testebanco.insere();
17: %>
18:
19:

Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

java.lang.NullPointerException
webcontabil.TesteB.insere(TesteB.java:41)
org.apache.jsp.confirm_005fpf_jsp._jspService(confirm_005fpf_jsp.java:84)
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:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
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.13 logs.

[/code]

Mais uma pergunta, onde é que eu coloco o conector do mysql? porque eu sempre coloco no proprio projeto e da certo, mas quando eu tou fazendo um projeto sem jsp.

Abraço.

Vc vai ter que deixar o construtor da classe teste tipo assim public TesteB(){} e criar um metodo ou uma classe conexao separada fora do contrutor por que o bean necessita de um contrutor dummy
ai no bean vc chama primeiro o metodo setConexao() e depois seta os valores tenta ai eu ja fiz algo assim antes

[quote=lgweb]Vc vai ter que deixar o construtor da classe teste tipo assim public TesteB(){} e criar um metodo ou uma classe conexao separada fora do contrutor por que o bean necessita de um contrutor dummy
ai no bean vc chama primeiro o metodo setConexao() e depois seta os valores tenta ai eu ja fiz algo assim antes[/quote]

Perdoe amigo, mas eu nao entendi direito. eu vou deixar o construtor sem conteudo e criar um metodo setConexao() que vai fazer a conexao?
é isso?
e onde é que eu chamo esse metodo?

[quote=Jorgev]Mais uma pergunta, onde é que eu coloco o conector do mysql? porque eu sempre coloco no proprio projeto e da certo, mas quando eu tou fazendo um projeto sem jsp.

Abraço.[/quote]

Poe dentro do diretorio WEB-INF/lib do seu projeto.

Outra coisa, é muito feio misturar a camada de interface, com regras de negocio, com banco de dados e etc :twisted:

[quote=ManchesteR][quote=Jorgev]Mais uma pergunta, onde é que eu coloco o conector do mysql? porque eu sempre coloco no proprio projeto e da certo, mas quando eu tou fazendo um projeto sem jsp.

Abraço.[/quote]

Poe dentro do diretorio WEB-INF/lib do seu projeto.

Outra coisa, é muito feio misturar a camada de interface, com regras de negocio, com banco de dados e etc :twisted: [/quote]

Eu fiz assim, coloquei ele no WEB-INF/lib e depois fui la em propriedades e adicionar .jars, ai ele foi pra Referenced libraries.

É assim?

e quanto ao codigo, eu preciso conseguir conectar com o banco, depois eu dou um jeito de limpar o codigo. Mas no momento eu preciso conectar com o banco de qualquer jeito.

Abraço.

Amigo da uma olhada aqui nesta apostila da caelum ela vai te ajudar bastante ,
acho que vc esta precisando.

Olha eu fiz mais um teste com o jsp puro pra ver se dava certo:

[code]<%@ page contentType=“text/html” language=“java” import=“java.sql.*”%>

Insert title here <% Connection con; Statement stm;

try {

  Class.forName("com.mysql.jdbc.Driver");   
  con = DriverManager.getConnection("jdbc:mysql://localhost/webcontabil", "root", "27410");   
  stm = con.createStatement();    
  out.println("Conexão efetuada com sucesso");   

} catch (Exception e) {
out.println("Não foi possível conectar ao banco " + e.getMessage());
}
%>

[/code]

e aparece isso no browser:

o seu banco nao escuta em nenhuma porta ? pois o meu necessita da porta para conexao?

[quote=lgweb][quote]

DriverManager.getConnection(“jdbc:mysql://localhost/webcontabil”, “root”, “27410”);
[/quote]
o seu banco nao escuta em nenhuma porta ? pois o meu necessita da porta para conexao?[/quote]

a porta do banco é: 3306.

Mas nos outros projetos funciona sem ela, será que no jsp tem que ter?
e eu coloco ela em que parte?

Galera eu consegui resolver o problema, era só colocar o mysqlConector na pasta lib do tomcat.

obrigado a todos.