Java e Banco de dados

9 respostas
pivoto
Pessoal, é o seguinte.

Estou tentando conectar o meu programa a um banco de dados.  que o programa da pau na seguinte linha:

conn = (Connection) DriverManager.getConnection(jdbc:mysql://localhost/mysql, root, senha);

Ele não consegue se conectar de maneira alguma. Creio que o caminho está errado. O nome do banco que quero acessar é Mysql.

As tabelas desse banco estão na pasta:

C:\Arquivos de programas\MySQL\MySQL Server 5.0\data\mysql

Ele encontra o driver.

Para entrar no mysql pelo promt eu digito: mysql -u root -p

E depois digito minha senha.

Sendo assim, qual parâmetro está errado na função:

conn = (Connection) DriverManager.getConnection(jdbc:mysql://localhost/mysql, root, senha);

Obrigado desde já.

9 Respostas

renomoto

E ai pivoto.

Cara, esse código abaixo funciona?

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/mysql", "root", "senha");

Senão mostre o erro que ocorre quando você executa o código.

[]'s!

Roger75

Carregou o driver antes?

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

Ou então tente pegar a conexão assim:

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/BANCO_DE_DADOS?user=root&password=root");
pivoto

A mensagem de erro que aparece é a seguinte:
Para pegar essa mensagem eu usei getMessage do SQLException.

Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.ConnectException
MESSAGE: Connection refused: connect

STACKTRACE:

java.net.ConnectException: Connection refused: connect

at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.PlainSocketImpl.doConnect(Unknown Source)

at java.net.PlainSocketImpl.connectToAddress(Unknown Source)

at java.net.PlainSocketImpl.connect(Unknown Source)

at java.net.SocksSocketImpl.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at java.net.Socket.(Unknown Source)

at java.net.Socket.(Unknown Source)

at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)

at com.mysql.jdbc.MysqlIO.(MysqlIO.java:271)

at com.mysql.jdbc.Connection.createNewIO(Connection.java:2744)

at com.mysql.jdbc.Connection.(Connection.java:1553)

at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)

at java.sql.DriverManager.getConnection(Unknown Source)

at java.sql.DriverManager.getConnection(Unknown Source)

at Escola$1.actionPerformed(Escola.java:33)

at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)

at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)

at javax.swing.DefaultButtonModel.setPressed(Unknown Source)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)

at java.awt.Component.processMouseEvent(Unknown Source)

at javax.swing.JComponent.processMouseEvent(Unknown Source)

at java.awt.Component.processEvent(Unknown Source)

at java.awt.Container.processEvent(Unknown Source)

at java.awt.Component.dispatchEventImpl(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)

at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)

at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Window.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)

** END NESTED EXCEPTION **

Last packet sent to the server was 0 ms ago.

Eu carreguei o driver sim.
Estou usando o eclipse e adicionei o drive ao projeto por ele.
Olha, eu devo usar root como user?
Será que a url do banco não está errado?

Valeu…

A

Caro pivoto,

As informações que vc passou, não ficaram muito claras. O interessante seria vc nos passar o código fonte para sabermos o que vc errou. Por via das dúvidas, estou postando um código que para mim está funcionando. É importante certificar que o Driver do MySQL esteja no Classpath da sua aplicação ou ao menos na pasta lib (dentro de WEB-INF) e que, principalmente, o serviço do MySQL esteja startado em seu OS. Qualquer duvida, fico a disposção.

Abraços,

*** Seque o código ***

public class ConnectionFactory {

	private static final String MYSQL_DRIVER = "org.gjt.mm.mysql.Driver";
	private static final String IP = "localhost";
	private static final int PORTA = 3306;
	private static final String BANCO = "seuBanco";
	private static final String USUARIO = "seuUsuario";
	private static final String SENHA = "suaSenha";
	private static final String URL_CONN = "jdbc:mysql://" + IP + ":" + PORTA + "/" + BANCO;
	
	public static Connection getConnection() {
		Connection conn = null;
		try {
			Class.forName(MYSQL_DRIVER);
			conn = DriverManager.getConnection(URL_CONN, USUARIO, SENHA);
			System.out.println("Conexao realizada com sucesso");
			return conn;
		} catch (ClassNotFoundException ex) {
			ex.printStackTrace();
		} catch (SQLException ex) {
			ex.printStackTrace();
		}
		return null;
	}

}
pivoto

import javax.swing.*;

import com.sun.corba.se.pept.transport.Connection;

import java.awt.<em>;

import java.awt.event.</em>;

import java.sql.DriverManager;

import java.sql.*;
public class Teste extends JFrame

{	

private static JButton botao;

private static final String MYSQL_DRIVER = org.gjt.mm.mysql.Driver;

private static final String USUARIO = root;

private static final String SENHA = 123456;

private static final String URL_CONN = jdbc:mysql://localhost/mysql”;
public Teste()
{
	super("Teste");
	
	try
	{
		UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		SwingUtilities.updateComponentTreeUI(this);
	}
	catch(Exception e){}
	
	botao = new JButton("Verificar Conexão");
	botao.setBounds(50,50,150,20);
	botao.addActionListener(new ActionListener()
	{
		public void actionPerformed(ActionEvent es)
		{
			try
			{ 				       
				    java.sql.Connection conn = null;   
				     
				    Class.forName(MYSQL_DRIVER);   
				    conn = DriverManager.getConnection(URL_CONN, USUARIO, SENHA);   
				    System.out.println("Conexao realizada com sucesso");   
				       
			} 
			catch (ClassNotFoundException ex) 
			{   
				System.out.println("Erro 1");
			} catch (SQLException ex) 
			{   
				System.out.println("Erro 2");   
			}   
		}
});
	
	add(botao);			
}
	

public static void main(String args[])
{
	Teste janela = new Teste();
	janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	janela.setSize( 275, 100 );
	janela.setLocationRelativeTo(null);
	janela.setVisible(true);
}

}

Esse é o meu código. Quando eu testo ele, eu abro o mysql e nada. O programa acha o drive pois o erro leva para a segunda exceção…
Estou usando mysql-connector-java-5.0.7-bin.jar
Obrigado pela atenção.

Ironlynx

pivoto, vc tá usando uma string de conexão errada para o Connector !!!
troque:
org.gjt.mm.mysql.Driver
por
com.mysql.jdbc.Driver

pivoto

Troquei a string e nada…
Será que eu instalei o Mysql de maneira errada?

pivoto

Pessoal. Consegui solucionar o problema.
Reinstalei o Mysql mas não deixei o programa configuar o servidor automaticamente.
Agora está conectando normalmente…
Obrigado pela atenção de você…

A

Fico contente por ter solucionado o problema.

Com relação a isso, vc nem precisava ter reinstalado o MySQL. Caso vc seja usuario do Windows NT (2000/XP), vc até pode deixar o MySQL para inicilizar manualmente. Bastaria no final que vc executasse o seguinte comando:

net start “mysql”

e para parar o serviço:

net stop “mysql”

Bom, acho que é tudo. Qualquer dúvida, só perguntar.

[]s

Criado 21 de agosto de 2007
Ultima resposta 22 de ago. de 2007
Respostas 9
Participantes 5