Olá Pessoal ! Dúvida? na Conexão Java com o MYSQL. Alguém pode me ajudar?

3 respostas
C

[code]

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JOptionPane;

public class PrincipalBanco {
public static void main (String[] args){
try {
//Efetuando a conexão
Connection conexao = DriverManager.getConnection("jdbc:mysql://localhost/facul");
//String com o comando SQL
String s = ("select into alunos values (3, Carlos, M, 21, 80");
//Preparar o Comando
PreparedStatement stm = conexao.prepareStatement(s);
//Executar o Comando
ResultSet rs = stm.executeQuery();
//Mostrar o resultado
while (rs.next()){
System.out.println(rs.getString(3));
System.out.println(rs.getString("Carlos"));
System.out.println(rs.getString("M"));
System.out.println(rs.getString(21));
System.out.println(rs.getString(80));
}
// Fechar Conexao
conexao.close();

[code]

Obs.: Fiz este código e dá erro na linha 12 (TRY { ) e 30 (conexao.close();) . Gostaria de saber de
voce(s) como eu posso fazer para que o meu código funcione perfeitamente com dicas, implementações que voce(s)
fizerem ou sugerirem. E também gostaria saber se estou fazendo até aqui corretamente a conexão java com MYSQL.
No aguardo, obrigado pela atenção.

3 Respostas

drsmachado

É por que todo try exige um catch ou finally…

Vinny

Vish cara usa tag code, acho que vc tentou usar mais não fechou a tag somente abriru para fechar vc usa /code entre colchetes, fica muito ruim de vizualizar o codigo sem a tag, mais vamos lá
Seria interessante tb se vc postasse o erro que esta dando.

Uma conexão em JDBC eu faço com esse método abaixo

public void conectarJdbc(){
        try
        {
            url = "jdbc:mysql://localhost:3306/NOMEBD";
            Class.forName("com.mysql.jdbc.Driver");
            connect = DriverManager.getConnection( url+"?defaultResultSetHoldable=True"  , "USER", "SENHA" );
        }
        catch ( ClassNotFoundException cnfex )
        { erro="Falha ao ler o driver JDBC\n"+cnfex.toString()+" \n\n\n"+url; }
        catch ( SQLException sqlex )
        { erro="Impossível conectar com a base de dados\n"+sqlex.toString()+" \n\n\n"+url; }
        catch ( Exception ex )
        { erro="Outro erro\n"+ex.toString()+" \n\n\n"+url; }
    }

Para realizar consultas eu uso este método abaixo

public ResultSet consultar(String sql){ ResultSet rs=null; if (connect==null){ try { Statement statement = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); rs = statement.executeQuery( sql ); //statement.close(); } catch ( SQLException sqlex ) { erro="Erro: \n"+sqlex.toString(); return null; } } return rs; }

Para percorrer o registros vc está fazendo certo, o erro deve estar acontecendo na hora de conectar com o banco.

Quanto ao erro na linha do conexao.close() provavelmente vc esta tentando fechar uma conexão que já está fechada ou talvez uma conexão que nem estanciada foi ou seja esta com o valor null.
Coloca um if antes de fechar a conexão verificando se ela esta aberta como por exemplo

if (!connect.isClosed()){
    connect.close();
}
Gabriel_Amorim

O drsmachado já deu a solução. :slight_smile:

Criado 6 de outubro de 2011
Ultima resposta 6 de out. de 2011
Respostas 3
Participantes 4