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:
/** Cria a conexção com o banco de dados*/packagewebcontabil;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.SQLException;publicclassClasseConexao{publicConnectioncon=null;staticfinalStringJDBC_DRIVER="com.mysql.jdbc.Driver";staticfinalStringDATABASE_URL="jdbc:mysql://localhost/webcontabil";staticfinalStringUSUARIO="root";staticfinalStringSENHA="27410";PreparedStatementst;publicClasseConexao(){try{Class.forName(JDBC_DRIVER);con=DriverManager.getConnection(DATABASE_URL,USUARIO,SENHA);}catch(ClassNotFoundExceptione){System.out.println("JDBC DRIVER NAO ENCONTRADO NO CLASS PATH");System.out.println(e.getMessage());}catch(SQLExceptione){System.out.println("NÃO CONECTADO COM O BANCO");}}}
<%@pagelanguage="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><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"><title>Insert title here</title></head><body><jsp:useBeanid="teste"class="webcontabil.TesteB"/><%=teste.insereB()%></body></html>
cade a classe TesteB lea tem um contrutor dummy?
posta o erro ai pra gente dar uma olhada
Jorgev
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.
L
lgweb
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+
Jorgev
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:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="pragma"content="no-cache"><%@includefile='cabecalho.jsp'%></head><body><jsp:useBeanid="testebanco"class="webcontabil.TesteB"/><% testebanco.setNome( "Jorge" );testebanco.setCpf( "524124121" );testebanco.setSexo( "m" );testebanco.setPai( "Joao" );testebanco.setMae( "Maria" );testebanco.insere();%></body></html>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";staticfinalStringUSUARIO="root";staticfinalStringSENHA="27410";publicTesteB(){try{Class.forName(JDBC_DRIVER);conn=DriverManager.getConnection(DATABASE_URL,USUARIO,SENHA);}catch(SQLExceptione){e.printStackTrace();}catch(ClassNotFoundExceptione){System.out.println("JDBC DRIVER NAO ENCONTRADO NO CLASS PATH");System.out.println(e.getMessage());}}publicvoidinsere(){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(SQLExceptione){e.printStackTrace();}}publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}publicStringgetCpf(){returncpf;}publicvoidsetCpf(Stringcpf){this.cpf=cpf;}publicStringgetSexo(){returnsexo;}publicvoidsetSexo(Stringsexo){this.sexo=sexo;}publicStringgetPai(){returnpai;}publicvoidsetPai(Stringpai){this.pai=pai;}publicStringgetMae(){returnmae;}publicvoidsetMae(Stringmae){this.mae=mae;}}
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.
L
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
Jorgev
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
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?
Jair_Rillo_Junior
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.
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:
Jorgev
ManchesteR:
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.
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:
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.
L
lgweb
Amigo da uma olhada aqui nesta apostila da caelum ela vai te ajudar bastante ,
acho que vc esta precisando.
Jorgev
Olha eu fiz mais um teste com o jsp puro pra ver se dava certo:
<%@pagecontentType="text/html"language="java"import="java.sql.*"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"><title>Insert title here</title></head><body><%Connectioncon;Statementstm;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(Exceptione){out.println("Não foi possível conectar ao banco "+e.getMessage());}%></body></html>
e aparece isso no browser:
Não foi possível conectar ao banco com.mysql.jdbc.Driver
L
lgweb
o seu banco nao escuta em nenhuma porta ? pois o meu necessita da porta para conexao?