Criar uma classe para acessar um banco de dados remoto

Boa tarde galera, estou estagíando numa fábrica de software aqui da faculdade, ai temos um servidor aqui, e ele contem um banco de dados MySQL, o coordenador da fábrica ta querendo que a nossa aplicação faça um acesso remoto ao banco de dados desse servidor… agora vem a dúvida, como fazer essa classe para acessar esse banco de dados remoto???

Não muda nada. O driver do MySQL já faz acesso remoto por padrão.
No máximo, você terá que alterar a configuração do servidor.

Se for via internet, o banco terá que ser movido para um servidor com IP fixo, e o pessoal da rede terá que liberar a porta usada pelo MySQL (3306).

Velhinho, não sei porque fechar um tópico e reabrí-lo com a mesma pergunta!

No artigo do Guj que lhe passei no outro tópico, explica como criar uma conexão de banco de dados, porém esse banco está local (na própria máquina) para fazer um acesso a outro servidor, basta indicar o endereço (ou IP) da máquina!

http://www.guj.com.br/article.show.logic?id=7

Faça um teste, veja se consegue e qualquer erro pode voltar a postar que tentaremos ajudá-lo!

Mas a aplicação é desktop será que tem alguma diferença?
Porque eu so havia feito localmente até hoje.

[quote=re_erick]Mas a aplicação é desktop será que tem alguma diferença?
Porque eu so havia feito localmente até hoje.[/quote]

Não há diferença nenhuma se é desktop, servidor ou uma simples classe de teste, basta você configurar a sua conexão apontando para o endereço de rede, e como o Viny falou, se for um BD na Web, um IP fixo deve ser niformador para ser possível se conectar a ele! Vale lembrar que, se você está em uma rede atrás de um firewall, deve ser requisitado ao seu administrador de rede a liberação da porta do DB.

Como disse, escreva o código, faça testes e vá postando suas dúvidas e erros que o sistema apresenta!

Eu fiz uma classe aqui para acessar remotamente, mas ta dando um erro aqui…

[code]package banco;

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

public class Conexao {

// Método que irá estabelecer a conexao como o Banco de Dados

public static Connection getConexao() throws SQLException{

   try{
	// Aqui é o processo de se registrar o drive
	   Class.forName("com.mysql.jdbc.Driver");
	   System.out.println("Conectado ao banco");

	// Processo de estabelecer a conexão
	   return DriverManager.getConnection("jdbc:mysql://172.16.20.141/sistoque" , "root" , "myroot");

	   // Tratamento de erro, caso ocorra algum!!
   }catch(ClassNotFoundException e){

	   // Caso ocorra erro, irá aparecer uma mensagem
   throw new SQLException(e.getMessage());
   }

}

}
[/code]

o erro é o seguinte

run: Exception in thread "main" java.sql.SQLException: com.mysql.jdbc.Driver at banco.Conexao.getConexao(Conexao.java:25) at banco.TesteConecao.main(TesteConecao.java:19) Java Result: 1 CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)

[quote=re_erick]Eu fiz uma classe aqui para acessar remotamente, mas ta dando um erro aqui…

[code]package banco;

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

public class Conexao {

// Método que irá estabelecer a conexao como o Banco de Dados

public static Connection getConexao() throws SQLException{

   try{
	// Aqui é o processo de se registrar o drive
	   Class.forName("com.mysql.jdbc.Driver");
	   System.out.println("Conectado ao banco");

	// Processo de estabelecer a conexão
	   return DriverManager.getConnection("jdbc:mysql://172.16.20.141/sistoque" , "root" , "myroot");

	   // Tratamento de erro, caso ocorra algum!!
   }catch(ClassNotFoundException e){

	   // Caso ocorra erro, irá aparecer uma mensagem
   throw new SQLException(e.getMessage());
   }

}

}
[/code]

o erro é o seguinte

run: Exception in thread "main" java.sql.SQLException: com.mysql.jdbc.Driver at banco.Conexao.getConexao(Conexao.java:25) at banco.TesteConecao.main(TesteConecao.java:19) Java Result: 1 CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos) [/quote]

Olá…
Faz assim:

E veja qual o erro é exibido no console.

[]'s
JL

Ao invés de

throw new SQLException(e.getMessage());

use

throw new SQLException(e);

Mas, como o teu cacth está “configurado” para pegar ClassNotFoundException, dá para dizer que o teu programa não está achando a classe mencionada no “stacktrace”, o nome da classe é com.mysql.jdbc.Driver

Essa classe se encontra em um jar (neste caso conhecido como driver jdbc), veja se ele está no classpath do teu projeto!

Valeu pessoal consegui o mysql do servidor não estava configurado corretamente e faltava a porta.

re_erick, posta ai como funciona essa configuração no servidor. Grato