MySQL + Eclipse - 'travado'

19 respostas
G

Pessoal, estou estudando um pouco MySQL e o acesso via JAVA.

Instalei o mysql-4.0.20d-win, o MySQL-Front_2.5, e configurei o classpath do eclipse para mysql-connector-java-5.1.5-bin.jar .

Testei vários códigos q achei na net e no guj, mas nada!

O Eclipse não apresenta nenhum erro e o programa fica rodando...
Simplesmente... nada acontece e eu tenho que parar o programa (stop)...

segue o código:

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


class ConexaoComMySQL {

	public static void main(String[] args) {

		try {
		Class.forName("com.mysql.jdbc.Driver");
		Connection conn = DriverManager
				.getConnection("jdbc:mysql://127.0.0.1/exemplo?user=root&password=root");
		Statement stm = conn.createStatement();
		ResultSet rs = stm.executeQuery("SELECT Nome, Idade FROM tbl_exemplo"); 
		
		System.out.println(rs); 
		}
		
		catch (Exception e) {
			e.toString();
		}
		
	}

19 Respostas

kaique

Cara, tenta debugar esse teu código pra ver exatamente qual a linha que fica “eternamente processando”…

[]'s.

G

é a Linha de conexão:

Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1/exemplo?user=root&&password=root");
gerdec

cara tenho esse exemplo de conexão que fiz para um colega esses dia da uma olhada

public class ExemploJDBC {

	public static void main(String[] args) {

		//eclaração das variaveis necessarias 
		Connection conexao = null;
		Statement stm = null;
		String sit = "";
		ResultSet rs = null;

		try {
			// essa é a classe que é carregada para fazer a conexão jdbc com a base de dados

			Class.forName("com.mysql.jdbc.Driver").newInstance();

			/*coloque no lugar de "teste" o nome do seu banco e no lugar de 
			 root o seu usuário e 12345 a sua senha coloquei usuário root por que por padrão o mysql 
			 cria esse usuário como no linux no seu caso pode usar ele já pois ele já foi criado existe 		  
			 */
			conexao = DriverManager.getConnection(
					"jdbc:mysql://localhost:3306/teste", "root", "12345");
			/* esse jdbc:mysql://localhost:3306 e onde o banco está ou seja na sua maquina e a porta 3306 
			que é padrão no mysql*/ 
			
			//stm objeto que recebe a conexão

			stm = conexao.createStatement();
			// se a connexão der certo aparecera a mensagem Conexao realizada com sucesso

			sit = "Conexao realizada com sucesso";
			System.out.println(sit);

			//rs e o resulte set que recebe o retorno da consulta SQL

			rs = stm.executeQuery("select * from usuario");

		   // looping para interar e imprimir os dados
			while (rs.next()) {
				String nome = rs.getString(1);
				String senha = rs.getString(2);

				System.out.println(nome);
				System.out.println(senha);
			}
			// aqui o stm que contém o stamente recebe uma instrução insert e se executada
			//imprime confirmação
			stm.executeUpdate("insert into usuario (login,senha)values ('fabricio','farias')");
			System.out.println("comando insert executado com exito");
			
            // catch usado para avisar se der algum erro na consulta SQL com um Exception
		} catch (Exception e) {
			sit = "Nao foi possivel conexaoectar " + e.getMessage();
			System.out.println(sit);
		}

	}

}

e quanto ao seu problema coloque essa linha no local do seu problema e altere para seus dados

conexao = DriverManager.getConnection(
					"jdbc:mysql://localhost:3306/teste", "root", "12345");
			/* esse jdbc:mysql://localhost:3306 e onde o banco está ou seja na sua maquina e a porta 3306 
			que é padrão no mysql*/
DriverManager.getConnection("jdbc:mysql://127.0.0.1/exemplo?user=root&&password=root");
G

Sem Chance… ele não conecta no banco…

usuário e senha estão corretos… consigo conectar pelo mysql front…

gerdec

o problema e que essa linha:

DriverManager.getConnection("jdbc:mysql://127.0.0.1/exemplo?user=root&&password=root");

tem que estar assim:

DriverManager.getConnection("jdbc:mysql://localhost:3306/teste", "root", "12345");

o mencionado não e usuario e senha invalidos e sim a sintaxe do comando por favor coloque a sintaxe indicada
espero ter ajudado

G

Mesma coisa... não conecta e não mostra nenhum erro...

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

class Conexao {

	public static void main(String[] args) {

		try {
			Class.forName("com.mysql.jdbc.Driver");
			Connection conn = DriverManager.getConnection(
					"jdbc:mysql://localhost:3306/exemplo", "root", "root");
			Statement stm = conn.createStatement();
			ResultSet rs = stm
					.executeQuery("SELECT Nome, Idade FROM tbl_exemplo");

			System.out.println(rs);
		}

		catch (Exception e) {
			e.toString();
		}

	}
}
gerdec

para vc ver o resultado do select vc deve fazer

while (rs.next()) {  
                 String nome = rs.getString(1);  
                 String senha = rs.getString(2);  
   
                 System.out.println(nome);  
                System.out.println(senha);  
           }
G

Idem... não conecta... logo, não mostrará nda...

Quais os procedimentos para a instalação?
Digo.. o mysql é só next, certo?!
colocar no classpath do eclipse o mysql-connector-java-5.1.5-bin.jar ...

algo mais???

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

class Conexao {

	public static void main(String[] args) {

		try {
			Class.forName("com.mysql.jdbc.Driver");
			Connection conn = DriverManager.getConnection(
					"jdbc:mysql://localhost:3306/exemplo", "root", "root");
			System.out.println("Conectado?!");
			
			Statement stm = conn.createStatement();
			ResultSet rs = stm
					.executeQuery("SELECT Nome, Idade FROM tbl_exemplo");

			while (rs.next()) {     
                String nome = rs.getString(1);     
                String idade = rs.getString(2);     
     
                System.out.println(nome);     
               System.out.println(idade);     
          } 
			
			
		}

		catch (Exception e) {
			e.toString();
		}

	}
}
maquiavelbona

Tente pegar um connector mais antigo, versão 3 . Pela documentação, o conector dá suporte apartir da versão 4.1 do MySQL. Ou atualize o MySQL, as versões antes da 4.1 deixam a desejar.

Até!

kaique

Cara, você tem certeza que seu banco foi inciado?
Se você utiliza windows, vai no prompt de comando e escreve o seguinte comando:

netstat -a

Na listagem que aparecer verifica se a porta 3306 está aberta e na situação LISTENING…

[]'s.

maquiavelbona

kaique:
Cara, você tem certeza que seu banco foi inciado?
Se você utiliza windows, vai no prompt de comando e escreve o seguinte comando:

netstat -a

Na listagem que aparecer verifica se a porta 3306 está aberta e na situação LISTENING…

[]'s.


Se não tivesse iniciado, a primeira coisa que ia acontecer era erro do socket tentando conectar. Ia vir o lindo “Connection refused”.

Até!

kaique

Com relação ao post do maquiavelbona, sempre baixe no site do mysql (banco de dados, driver JDBC) aquilo que eles marcarem como recommended. Eu sempre fiz dessa maneira e nunca tive problemas de conexão com o mysql…

[]'s.

gerdec

tente esse driver talvez possa ter alguma incompatibilidade com o seu mysql

Class.forName("org.gjt.mm.mysql.Driver");
RenataFA
guilherme.cq:
Pessoal, estou estudando um pouco MySQL e o acesso via JAVA.

Instalei o mysql-4.0.20d-win, o MySQL-Front_2.5, e configurei o classpath do eclipse para mysql-connector-java-5.1.5-bin.jar .

Testei vários códigos q achei na net e no guj, mas nada!

O Eclipse não apresenta nenhum erro e o programa fica rodando...
Simplesmente... nada acontece e eu tenho que parar o programa (stop)...

Amigo, se vc instalou o mysql 4, pq não usa um connector equivalente?! Vc tá usando um connector pra versão 5. Ou senão muda a versão do seu Mysql, enfim,,,, use uma versão do banco e do connector equivalentes.

Eu tenho instalado o MySQL 5.0.24 e uso o connector mysql-connector-java-5.0.4-bin.jar.

Faço a conexão da seguinte forma:

try {
	Class.forName("com.mysql.jdbc.Driver");
	Connection conn = DriverManager.getConnection("jdbc:mysql://ipDoBanco/meuBanco?user=usuario&password=senha");
   			
} catch (Exception e) {
	e.printStackTrace();
}
G

Caralho mais que merda hein!!!

Agora funcionou...

Estou utilizando as seguintes versões:

- Eclipse SDK
Version: 3.3.0

- MySQL Server 5.0

- MySQL-Front
Version: 3.2 (Build: 14.8)

- mysql-connector-java-5.1.5-bin.jar

Segue código utilizado:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

class Conexao {

	public static void main(String[] args) {

		try {
			Class.forName("com.mysql.jdbc.Driver");
			Connection conn = DriverManager.getConnection(
					"jdbc:mysql://localhost:3306/exemplo", "root", "root");
			System.out.println("Conectado?!");
			
			Statement stm = conn.createStatement();
			ResultSet rs = stm
					.executeQuery("SELECT Nome, Idade FROM tbl_exemplo");

			while (rs.next()) {     
                String nome = rs.getString(1);     
                String idade = rs.getString(2);     
     
                System.out.println(nome);     
               System.out.println(idade);     
          } 
			
			
		}

		catch (Exception e) {
			e.toString();
		}

	}
}

Obrigado pela ajuda.

G

Uma duvidinha, como faço para imprimir a tabela com os dados alinhados?!

Utilizei o printf assim:

System.out.printf("%s%20s\n", nome, idade);

Mas ficou torto, ele conta 20 casa depois do 1º dado… assim:

GuiGui 20
Guilherme 20

eu quero algo assim:

GuiGui 20
Guilherme 20

G

Ops… o poste nao saiu certo… enfim… alinhamento a esquerda para o nome e alinhamento a direita para a idade…

G

achei na api…

System.out.printf("%-20s%s\n", nome, idade);
RenataFA

guilherme.cq:
Caralho mais que merda hein!!!

Agora funcionou…

Estou utilizando as seguintes versões:

  • Eclipse SDK
    Version: 3.3.0

  • MySQL Server 5.0

  • MySQL-Front
    Version: 3.2 (Build: 14.8)

  • mysql-connector-java-5.1.5-bin.jar

Obrigado pela ajuda.

É então, se existem versões diferentes deve ser por algum motivo né? rs…

T+

Criado 7 de fevereiro de 2008
Ultima resposta 8 de fev. de 2008
Respostas 19
Participantes 5