Acesso o Banco de Dados Problema Resolvido

[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!

[code]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);

}

}
}
[/code]

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!

[quote=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!
[/quote]
Sim amigão está apresentando erro na linha 30.

30. Statement stm = con.createStatement();

colegas, é o seguinte…

onde voce tem

Connection conn   = DriverManager.getConnection(url, usuario,  senha);  

voce CRIA a conexao.

onde voce tem

 Statement stm = con.createStatement();    [/code]
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 = [b]conn.[/b]createStatement();    
e ele TEM que estar dentro do try-catch

a ordem seria +- assim:

[code]< 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:

[quote=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();    [/code]
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 = [b]conn.[/b]createStatement();    
e ele TEM que estar dentro do try-catch

a ordem seria +- assim:

[code]< 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:
[/quote]

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

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!

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…

[b][color=red][/color][size=18][/size][quote=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!

[code]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);

}

}
}
[/code][/quote]

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…