Não consigo conectar c/MySql através de um bean de conexão

0 respostas
Z

Olá Pessoal,

Sou novo por aqui e tb sou novato em java.
Estou há dias tentando me conectar a um banco de dados MySql, através de um javabean de conexão e não consigo.
Uso uma pág HTML p/ chamar um servlet e este servlet importa o pacote javabean para que eu possa instancia-lo e usar suas funções públicas.
Experimentei usar esse bean p/ abrir um banco de dados ACCESS através de ODBC e funcionou.
Outro detalhe interessante é q quando eu estabeleço a conexao diretamente no servlet, com todas as funções dentro do servlet, funciona. Mas através do bean nao vai de jeito nenhum.

Eu coloquei o arquivo “mysql-connector-java-3.1.12-bin.jar” dentro da pasta lib do WEB-INF da aplicação. Tinha lido q isso seria o suficiente.
Como continuou com o problema adicionei a seguinte linha no classpath do autoexec.bat.
SET CLASSPATH=%CATALINA_HOME%\COMMON\LIB\mysql-connector-java-3.1.12-bin.jar;%CLASSPATH%
Tb não resolveu.

Abaixo aparece vai um trecho do erro q surge no navegador, a classe do servlet e do bean de conexão.

Se alguém puder me ajudar, agradeço desde já.

Abraços

Zovao

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.NullPointerException
at CadServletFileBeanConexArq.doPost(CadServletFileBeanConexArq.java:185)

A linha 185 é a q chama a função insertIntoDB do javabean.

========///////////////===============

Aqui está o codigo do CadServletFileBeanConexArq.java

import <a href="http://java.io">java.io</a>.<em>;

import java.io.File;

import javax.servlet.</em>;

import javax.servlet.http.<em>;

import java.util.</em>;

import java.sql.<em>;

import java.text.DecimalFormat;

import conJdbc.</em>;

import arquivo.*;
public class CadServletFileBeanConexArq extends HttpServlet {

public ResultSet rs = null;

public ConexPed connect = null; //da classe ConexPed do pacote importado conJdbc

private String driver = com.mysql.jdbc.Driver; //antigo: “org.gjt.mm.mysql.Driver”; dizem q a atual é: “com.mysql.jdbc.Driver”;

private String URL = jdbc:mysql://localhost:3306/cadastro”;

private ArrayList listaPedido = new ArrayList(); //vai conter a lista de produtos do pedido

private ArquivoIO arq = null; //da classe ArquivoIO do pacote importado arquivo
public void init( ServletConfig config )

throws ServletException

{

super.init( config );
try

{

connect = new ConexPed(driver, URL, monty, some_pass);

}

catch ( Exception e )

{

e.printStackTrace();

connect = null;

}
try

{

arq = new ArquivoIO();

}

catch ( Exception e )

{

e.printStackTrace();

arq = null;

}

}

public void doPost( HttpServletRequest req,

HttpServletResponse res )

throws ServletException, IOException

{

boolean success = true;

String email, nome, sobrenome, produto, valor, valorFormatado, temp;

String palavraLista;

String campo[] = new String[2];

double soma;

DecimalFormat doisDigitos = new DecimalFormat(0.00);
String textoLido1= new String();

String textoLido2= new String();

String textoLido3= new String();

String textoToken= new String();

String textoTokenAbaixo= new String();

soma = 0.00;

email = req.getParameter( Email );

nome = req.getParameter( Nome );

sobrenome = req.getParameter( Sobrenome );

produto = req.getParameter( Produto );

valor = req.getParameter( Valor );

PrintWriter output = res.getWriter();
res.setContentType( “text/html” );

if (listaPedido.size() > 0)

{

try

{

StringTokenizer tokens;
for (int k=0; k < listaPedido.size(); k++ )

{

palavraLista = String.valueOf(listaPedido.get(k)); //converte em string cada item da listaPedido a ser tokenizado
if ( req.getParameter( palavraLista ) != null )

{

tokens = new StringTokenizer( palavraLista, “$” );

int numCampo = 0;

while ( tokens.hasMoreTokens() )

{

campo[numCampo] = tokens.nextToken(); //campo[0] contem Email e [1] possui produto

numCampo = numCampo + 1;

}

connect.executeUpdate( DELETE * FROM pedido WHERE Email = '” + campo[0] + “’” + “AND Produto = ' + campo[1] + “’” );

}

}

esvaziaLista( listaPedido );

}

catch ( Exception e )

{

System.err.println(

ERROR: Problemas ao ler registros );

e.printStackTrace();

}

}
else

{

if ( email.equals( “” ) || nome.equals( “” ) || sobrenome.equals( “” ) || valor.equals( “” ) )

{

output.println( <H3> Por favor retorne c/o botão e preencha novamente.</H3> );

output.close();

return;

}

}

if ( email.length() > 0 && nome.length() > 0 && sobrenome.length() > 0 && valor.length() > 0 )
{

/* inserindo campos */
success = connect.insertIntoDB(
"’" + email + “’,’” + nome + “’,’” + sobrenome + “’,’” + produto + “’”, Double.parseDouble(valor)
);

}

if ( success )

{

try

{

rs = connect.executeQuery( SELECT * FROM pedido WHERE Email = '” + email + “’” );

… código q trata com outro bean q funcionou.

while ( rs.next() )

{

…

}

}

catch ( Exception e )

{

System.err.println(

ERROR: Problemas ao ler registros );

e.printStackTrace();

}
}

else

output.print( "<H2>Ocorreu um erro. " +

“Por favor, tente depois.</H2> );

output.close();
}

private void esvaziaLista( Collection c )

{

Iterator i = c.iterator();

while ( i.hasNext() )

if ( i.next() instanceof String )

i.remove();

}
public void destroy()

{

connect.fecharConexao();

}

}

=============///////////////============

Aqui está o contrutor do JavaBean.

package conJdbc;

import java.sql.*;

public class ConexPed

{

public Connection connection;

public Statement statement;
public ConexPed (String driver, String urlServidor, String user, String password)

throws SQLException

{

try

{

Class.forName(driver);

connection = DriverManager.getConnection(urlServidor,user,password);

}

catch (ClassNotFoundException ex)

{

System.out.println("Não foi possível encontrar a classe do Driver: " + driver);

}

catch (SQLException ex)

{

System.out.println(“Não foi possível conectar ao servidor”);

throw ex;

}
try

{

statement = connection.createStatement();

}

catch (SQLException ex)

{

System.out.println(Não foi possível criar a statement);

throw ex;

}

}

Criado 19 de abril de 2006
Respostas 0
Participantes 1