Statement nao quer funcionar

8 respostas
A

Tenho uma classe responsavel apenas pela conexao com o banco, classe “Conexao” funciona blzinha,

Tenho uma outra classe “Controlador” e nessa classe eu crio um objeto Conexao funciona blz compila e tudo, mas na hora que executa e chega na linha em que eu tento criar o statement dah uma exception

Trecho da classe Controlador:

try

{

Conexao conectar = new Conexao();

System.out.println(Conectou no Banco);

 stmt = conectar.con.createStatement();     //ERRO AKIIIIIIIIII

System.out.println(criou statement); 	

ResultSet rs = stmt.executeQuery(SQL);



}

Exception gerada:

Conectou no banco

java.sql.SQLException: General error

at sun.jdbc.odbc.JdbcOdbc.throwGenericSQLException JdbcOdbc.java:6235)

at sun.jdbc.odbc.JdbcOdbc.SQLAllocStmt(JdbcOdbc.java:163)

at sun.jdbc.odbc.JdbcOdbcConnection.createStatement(JdbcOdbcConnection.j

ava:408)

at sun.jdbc.odbc.JdbcOdbcConnection.createStatement(JdbcOdbcConnection.j

ava:391)

at Controle.conecta(Controle.java:44)

at Controle.(Controle.java:17)

at Controle.main(Controle.java:85)

Press any key to continue…”

alguem pode dar um help, ou entao uma outra solucao??

8 Respostas

P

Não seria
Statement stmt = conexao.createStatement();

A

“pacheco”:
Não seria
Statement stmt = conexao.createStatement();

O objeto é “conectar” e utiliza o “Connection con” da classe Conexao, por isso uso

stmt = conexao.con.createStatement();

até tentei fazer como vc falou mas nem rolou… a nao ser que nao entendi… :frowning:

P

Eu posso estar errado mas pelo que me parece é que o problema esta:
Conexao conectar = new Conexao();

e não aqui:
stmt = conectar.con.createStatement(); //ERRO AKIIIIIIIIII

pois o erro só dá aí pois stmt pois é a primeira vez que vc tenta usar o conectar …

ou seja o que quero dizer é se não conectar o erro só vai aparecer no stmt = conectar.con…

posso estar errado mas não custa olhar

:smiley:

Blz?

A

pacheco, será q vc nao teria um exemplo de como utilizar o statement fora de uma classe conexao ? Não estou conseguindo ja mudei e tentei de varias formas… ja to ficando careca :smiley: , e acredito que nao seja nenhum bixo de 7 cabeça, mas to me enroscando nisso.

Obrigado pela atenção :smiley:

P

no seu principal …

private void conectar() {

BancoDeDados banco= new BancoDeDados();

banco.setSenha(txtSenha.getText());

banco.setURL(txtURL.getText());

banco.setUsuario(txtUsuario.getText());		

if (banco.conectar()){		

lblStatus.setText(Conectou);

// ai sim vc faz o stmt

}

else{

lblStatus.setText(Não Conectou);

}									

}
//-------------------

import java.sql.*;

public class BancoDeDados {

private boolean conectado;

private Connection conexao;	

private String url=jdbc:microsoft:sqlserver://xxxxxxxx:1433”;

private String usuario=xxxxxxxx;

private String senha=xxxxxxx;
public boolean getConectado() {
	return conectado;
}

public void setUsuario(String strgeral) {
	usuario = strgeral;
}

public void setURL(String strgeral) {
		url = strgeral; 
	}

public void setSenha(String strgeral) {
	senha = strgeral; 
}

public Connection getConexao() {
	if (!conectado) 
		if (!this.conectar())
			return null;
	return conexao;
}

public boolean conectar() {
	try {
		Class.forName("xxxxxxxxxxxxxxxxx");
		conexao = DriverManager.getConnection(url, usuario, senha);
		conectado = true;
	} catch(ClassNotFoundException ex) {
		ex.printStackTrace();
		conectado = false;
		return false;
	} catch (SQLException ex1) {
		ex1.printStackTrace();
		conectado = false;
		return false;
	}
	
	return true; 
}

public boolean desconectar() {
	try {
		conexao.close();
		conectado = false;
		return true;
	} catch (SQLException ex2) {
		ex2.printStackTrace();
		return false;
	}
}

}

P

não sei se ajuda qualquer coisa posta aí

A

pacheco

:smiley: Kara, axei o bendito erro, era coisa de pia pançudo hehehehe o pior é que olhei varias vezes mas nem me liguei,

era o seguinte: na minha classe Conexao tinha o Try-catch-finnaly e no finnaly eu tava fechando a conexao, nao dah pra acreditar, perdi algumas horas por uma coisa q tava na minha frente, mas faz parte do aprendizado.

obrigado pela sua ajuda, foi muito util, me fez refazer o codigo e encontrar o erro.

Abraços

P

não foi nada quando precisar estamos aí !!

Criado 10 de fevereiro de 2004
Ultima resposta 10 de fev. de 2004
Respostas 8
Participantes 2