Conexão com o banco de dados ( JDBC - Postegresql )

5 respostas
postgresqlprogramaçãojava
G

Hello guys, estou aprendendo um pouco sobre conexão com banco de dados e tentando fazer conexão com banco de dados e apenas roda o método main, eu tenho uma String em outra classe pra informar caso a conexão funcione, mas não aparece no console, segue em anexo o código atual:

import Ultilitarios.Conexao;

public class Programa {

Conexao conectar = new Conexao();

public Programa() {
	conectar.conexao();
}

//Isso aqui está fora do main, quando eu coloco ele pede pra converter em static

E aí turma, o que eu faço?

5 Respostas

D

Você só pode usar algo dentro de um método estático se:

  • Foi passado como parâmetro
  • Foi declarado dentro do método
  • É estático
  • Foi criada uma instância do objeto onde este elemento (atributo/método) existe

Qualquer situação diferente disso, não irá funcionar.

“Mas por que isso?”.
Simples, você possui métodos (e atributos) da classe e do objeto. Tudo o que contém a palavra reservada static pertence à classe (obviamente, estará acessível para seus objetos).
Além disso, tudo o que é estático é carregado no momento em que a classe é colocada (imagina que seja isso) no ClassLoader.

G

Mas quando eu coloquei dentro do Main, não funcionou apareceu um aviso de erro, aí tinha que fazer outras coisas lá que eu não entendi direito

S

Pode usar assim:

import Ultilitarios.Conexao;

public class Programa {

    private static Conexao conexao = new Conexao();

    public static void main(String[]) args) {
        conexao.conectar();
    } 

}

Ou o seu método conectar ser estático (static):

public static void conectar() {
       /* executa o método */
}
G

Acho que você embaralhou ali no primeiro código, ali em “private static Conexao”, não seria “conectar” e dentro do Main não seria “conectar.conexao();”?

S

Criei uma variável estática do tipo Conexao, instanciei e chamei o método conectar.

Ou apenas faria o import e chamaria o método caso já fosse estático.

Criado 6 de setembro de 2018
Ultima resposta 7 de set. de 2018
Respostas 5
Participantes 3