Conexão com banco mysql + javase

4 respostas
worlock257

Galera ñ estou conseguindo conectar com o mysql. Quando usei o php myadmin foi normal. Mas diretamente pelo mysql server ñ dá. Dar erro de acesso negado. Será que é o usuário?
erro: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

package jdbc;

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

import javax.xml.ws.RespectBinding;

import com.mysql.jdbc.util.ResultSetUtil;

public class JdbcTest {

	public static void main(String[] args) {

		Connection connection = null;
		Statement statement = null;
		ResultSet resultSet = null;

		try {
			connection = DriverManager.getConnection("jdbc:mysql://localhost/persona", "root", "****");

			statement = connection.createStatement();

			resultSet = statement.executeQuery("Select * from pessoa");
			
			while(resultSet.next()){
				
				System.out.println("id:"+resultSet.getString("nome"));
				System.out.println("nome:"+resultSet.getString("cidade"));
				
			}
			
			
			
		}

		catch (SQLException sqlException) {
			sqlException.printStackTrace();
		}

		finally {
			try {
				resultSet.close();
				statement.close();
				connection.close();
			} 
			catch (Exception exception)
			{
				exception.printStackTrace();
			}
		}

	}

}

4 Respostas

Rauel

as vezes vc pode ter passado a senha errado, tente mudar a senha no mysqladmin ou entao tente deixar a senha em branco e ver se conecta ou se nda funcionar pode ser algum erro no proprio mysql :smiley:

worlock257

Preciso entender uma coisa, para mim conectar ao banco de dados preciso ter um servidor rodando ou só o mysql e o driver? Tipo: crio uma tabela no mysql por linha de comando e consigo acessar? Se puder o que coloco no caminho para acessar através Eclipse? seria localhost msm?

Rafael_Mesquita_Mour

A senha que você colocou no DriverManager deve estar aberta, pelo menos sempre que uso com a senha aberta funciona normalmente.

F

Olá worlock257!

Em relação às suas dúvidas:

Para se conectar ao banco de dados no Java através do JDBC é necessário que você possua o driver do banco de dados ao qual você deseja se conectar. A classe responsável por realizar essa conexão é o DriverManager que possui um método estático chamado getConnection([color=red]url[/color], [color=red]usuario [/color], [color=red]senha[/color])
A classe abaixo realiza uma conexão com o banco:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


public class ConnectionFactory {
	
	public Connection getConnection() {
		try {
			System.out.println("Conectando no banco...");
			return DriverManager.getConnection("jdbc:mysql://localhost/seubanco","seuusuario", "suasenha");
		} catch(SQLException e) {
			throw new RuntimeException("Nao foi possivel estabelecer a conexao!");
		}
	}
}

Sim!

Caso o bd esteja instalado na própria máquina em que você está rodando a aplicação, o caminho será “localhost”. Caso contrário, informe o IP da máquina em que se encontra instalado o bd.
Uma coisa importante que muitas vezes esquecemos é de colocar o driver do jdbc no classpath da aplicação. Sem isso o Java não conseguirá encontrar as classes necessárias para realizar a conversação com o banco. Se você estiver usando o Eclipse, faça o seguinte procedimento:
1º - Crie uma pasta no seu projeto chamada “lib”;
2º - Copie o driver do jdbc para dentro desta pasta
3º - Clique com o botão direto em cima do driver e escolha a opção Build Path–>Add to Build Path

Espero que tenha ficado claro. Qualquer dúvida não deixe de postar!

Criado 17 de outubro de 2011
Ultima resposta 18 de out. de 2011
Respostas 4
Participantes 4