Acesso o Banco de Dados Problema Resolvido

8 respostas
L

[color=red][/color]Galera o negocio é o seguinte estou tentando buscar informações no BD, porém não estou conseguindo, alguem ai pode dar uma olhada no código e me falar onde estou errando
Lembrando que a conexão com o banco MySql já foi executada.
Aguardo resposta!
Desde já agradeço a todos!

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mysql.jdbc.Statement;
import java.sql.*;
public class Conexao{
  public Connection conectar(){
    // base de dados é "test"
    String url = "jdbc:mysql://localhost:3306/escola";
    String usuario = "root";
    String senha = "";
   
    try{
      Class.forName("com.mysql.jdbc.Driver").newInstance();
      Connection conn = DriverManager.getConnection(url, usuario, 
         senha);
      return conn;
    } 
    catch(SQLException ex){
      System.out.println("SQLException: " + ex.getMessage());
      System.out.println("SQLState: " + ex.getSQLState());
      System.out.println("VendorError: " + ex.getErrorCode());
      return null;
    }
    catch(Exception e){
      System.out.println("Problemas ao tentar conectar com o banco de dados: " + e);
      return null; 
    }
    Statement stm = con.createStatement();  
    String SQL = "Select mat,nome from alunos";
    ResultSet rs = stm.executeQuery(SQL);
    while(rs.next())
    {
       int mat = rs.getInt("mat");
       String nome = rs.getString("nome");
       System.out.println("mat: "+mat+" nome: "+nome);
  }
  
  }
}

8 Respostas

F

Olá lincolnalberto!

Ele esta apresentando algum erro?
Eu também sou novata, mas ja “briguei” muito com conexões e select´s e talvez possa te ajudar!

L

fernandazevedo:
Olá lincolnalberto!

Ele esta apresentando algum erro?
Eu também sou novata, mas ja “briguei” muito com conexões e select´s e talvez possa te ajudar!


Sim amigão está apresentando erro na linha 30.

30. Statement stm = con.createStatement();

Victor_Neves

colegas, é o seguinte....

onde voce tem

Connection conn   = DriverManager.getConnection(url, usuario,  senha);
voce CRIA a conexao. onde voce tem
Statement stm = con.createStatement();
voce meio que vamos dizer "cria" um canal de comunicacao para envio de mensagens com a conexao do BD (alguem me corrija se eu estiver errado)

pois bem... voce cria um canal (stm ) EM CIMA da conexao (conn).... entao o codigo seria Statement stm = conn.createStatement();
e ele TEM que estar dentro do try-catch

a ordem seria +- assim:

< imports >

public class xxx{
  try{
     // criaçao da conexao
     // criaçao do canal, em cima do OBJETO da  conexao
  
    //  regra de negocio

    //  fechamento do canal
    //  fechamento da conexao (obrigatoriamente nessa ordem, voce nao pode fechar a porta do seu quarto depois de ja ter fechado a casa )

  }catch (exeption e ){
  //  tratamento das execoes
 }
}

lembre-se tudo dentro do try-catch.

DICA: faça uns hello words de conexao com BD, a internet ta cheia cheia cheia de hello words disso.... :wink:

L
Der Meister:
colegas, é o seguinte....

onde voce tem

Connection conn   = DriverManager.getConnection(url, usuario,  senha);
voce CRIA a conexao. onde voce tem
Statement stm = con.createStatement();
voce meio que vamos dizer "cria" um canal de comunicacao para envio de mensagens com a conexao do BD (alguem me corrija se eu estiver errado)

pois bem... voce cria um canal (stm ) EM CIMA da conexao (conn).... entao o codigo seria Statement stm = conn.createStatement();
e ele TEM que estar dentro do try-catch

a ordem seria +- assim:

< imports >

public class xxx{
  try{
     // criaçao da conexao
     // criaçao do canal, em cima do OBJETO da  conexao
  
    //  regra de negocio

    //  fechamento do canal
    //  fechamento da conexao (obrigatoriamente nessa ordem, voce nao pode fechar a porta do seu quarto depois de ja ter fechado a casa )

  }catch (exeption e ){
  //  tratamento das execoes
 }
}

lembre-se tudo dentro do try-catch.

DICA: faça uns hello words de conexao com BD, a internet ta cheia cheia cheia de hello words disso.... :wink:

Amigão valeu ai pela dica, era esse o problema!

LPJava

se o erro está na linha 30 é pq ele nao está encontrando a variavel con, vc criou uma variavel con dentro do bloco try{} como quer acessa-la fora desse contexto?

Veja esse aqui um exemplo parecido com o seu, link

flw!

daniellfeijo

lincolnalberto,

tenta isso…

tira isso do seu codigo

Statement stm = con.createStatement();     
String SQL = "Select mat,nome from alunos";   
ResultSet rs = stm.executeQuery(SQL);

e coloca assim…

String sql = "Select mat,nome from alunos";
PreparedStatement stm = con.prepareStatement(sql);
ResultSet rs = stm.executeQuery()

acho que isso resolve…

abraço…

L

[b][color=red][/color][size=18][/size]

lincolnalberto:
Galera o negocio é o seguinte estou tentando buscar informações no BD, porém não estou conseguindo, alguem ai pode dar uma olhada no código e me falar onde estou errando
Lembrando que a conexão com o banco MySql já foi executada.
Aguardo resposta!
Desde já agradeço a todos!

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mysql.jdbc.Statement;
import java.sql.*;
public class Conexao{
  public Connection conectar(){
    // base de dados é "test"
    String url = "jdbc:mysql://localhost:3306/escola";
    String usuario = "root";
    String senha = "";
   
    try{
      Class.forName("com.mysql.jdbc.Driver").newInstance();
      Connection conn = DriverManager.getConnection(url, usuario, 
         senha);
      return conn;
    } 
    catch(SQLException ex){
      System.out.println("SQLException: " + ex.getMessage());
      System.out.println("SQLState: " + ex.getSQLState());
      System.out.println("VendorError: " + ex.getErrorCode());
      return null;
    }
    catch(Exception e){
      System.out.println("Problemas ao tentar conectar com o banco de dados: " + e);
      return null; 
    }
    Statement stm = con.createStatement();  
    String SQL = "Select mat,nome from alunos";
    ResultSet rs = stm.executeQuery(SQL);
    while(rs.next())
    {
       int mat = rs.getInt("mat");
       String nome = rs.getString("nome");
       System.out.println("mat: "+mat+" nome: "+nome);
  }
  
  }
}
daniellfeijo

voce retorna uma Conexão conn no codigo abaixo:

try{   
      Class.forName("com.mysql.jdbc.Driver").newInstance();   
      Connection conn = DriverManager.getConnection(url, usuario,   
         senha);   
      return conn;

depois usa con na linha abaixo se referindo a conexão!! tá faltando um um n!! é conn!! tá estranho!!

Statement stm = con.createStatement();

quer minha opnião? Porque você não coloca os atributos dentro classse e não do metódo?
depois muda seu metodo para sem retorno “void” e faz o seguinte:

......
public class Conexao{
    // coloca aqui na classe os atributos e não dentro do metodo!!!
    String url = "jdbc:mysql://localhost:3306/escola";   
    String usuario = "root";   
    String senha = "";
    Connection conn; // coloca a conexão como atributo da classe tambem!!
    public void conectar(){   
         
    try{   
      Class.forName("com.mysql.jdbc.Driver").newInstance();   
      conn = DriverManager.getConnection(url, usuario, //aqui o atributo conexão da classe recebe a conexão com o banco
         senha);   
      
    }
.....
.....

depois muda muda lá em no statement

...
     String SQL = "Select mat,nome from alunos";  
     PreparedStatement stm = conn.prepareStatement(SQL);     
     ResultSet rs = stm.executeQuery();
...
...

Tenta fazer isso para ver se resolve…
Abraço…

Criado 21 de novembro de 2009
Ultima resposta 25 de nov. de 2009
Respostas 8
Participantes 5