Acesso de valores em um método static[RESOLVIDO]

7 respostas
N

Bom dia, sou iniciante em java e estou com uma dúvida em relaçao a pegar um valor de um método static.

Quero usar o valor dessa váriável url em outra classe:

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

public class ConexaoBD {

	public static Connection getConnectionDB() throws SQLException,
			ClassNotFoundException {

		Connection connection = null;

		String driverName = "net.sourceforge.jtds.jdbc.Driver";

		Class.forName(driverName);
                // Essa variável abaixo:
		String url = "jdbc:jtds:sqlserver://192.168.0.31:1436/MEUBANCO_ICO";

		String username = "admin";

		String password = "admin";

		connection = DriverManager.getConnection(url, username, password);

		return connection;

	}

}
Nesta outra classe quero buscar o valor dessa váriavel mas nao estou conseguindo.
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class teste extends ConexaoBD {

	public static void main(String[] args) throws ClassNotFoundException,
			SQLException {

		Connection connection = getConnectionDB();
		String sql = "SELECT NAME FROM SYSOBJECTS WHERE NAME LIKE 'TB%' ORDER BY NAME ";
		PreparedStatement prest = connection.prepareStatement(sql);

		ResultSet rs = prest.executeQuery();

		int count = 0;
		while (rs.next()) {
                
			String tab_nomfis = rs.getString(1);
			String tab_descricao = rs.getString(1);
               /*É aqui que estou com dúvidas, preciso acessar aquele valor da URL pra usar aqui:
                 * Por exemplo if (url == "jdbc:jtds:sqlserver://192.168.0.31:1436/MEUBANCO_ICO") {
                 * tab padrao = 1;
                 * }
                 * if (url == "jdbc:jtds:sqlserver://192.168.0.31:1436/OUTROBANCO_ICO") {
                 * tab padrao = 2;
                 * }
                 *e assim por diante
               */
                  int tab_padrao = 1;
                 
			


		}

		System.out.println("Total tabelas cadastradas: " + count);

		prest.close();

		connection.close();
	}

}

Peço desculpas se a dúvida for fácil...
Mas inicia em java agora.

Lembre-se que ninguém nasceu aprendendo.
Desde ja agradeço

7 Respostas

rmendes08

Variáveis criadas dentro de métodos são chamadas variáveis locais, e somente podem ser usadas dentro do método que as criou. Para compartilhar a variável entre métodos da mesma classe você precisa criá-las no escopo da classe. Leia esse tutorial:

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html

vitordarela

Crie todas as suas várias como padrão em cima do código

public class Conta {

	private double saldo;

//restante do código

utilize o private na frente das suas varias para utilizar o ENCAPSULAMENTO, gerando Gets e Sets.

Ex:

public class Conta {

	private double saldo;

//restante do código com Gets e Sets implemtados.

salario.setSaldo(100);
salario.getSaldo();
G
import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.SQLException;  
  
public class ConexaoBD {  

    private String url; //*****

    public String getUrl(){  //*****
          return url;
    }

    public static Connection getConnectionDB() throws SQLException,  
            ClassNotFoundException {  
  
        Connection connection = null;  
  
        String driverName = "net.sourceforge.jtds.jdbc.Driver";  
  
        Class.forName(driverName);  
                // Essa variável abaixo:  
        url = "jdbc:jtds:sqlserver://192.168.0.31:1436/MEUBANCO_ICO";  
  
        String username = "admin";  
  
        String password = "admin";  
  
        connection = DriverManager.getConnection(url, username, password);  
  
        return connection;  
  
    }  
  
}
no metodo main digite
super.getUrl();

se quiser se aprofundar melhor leia sobre Encapsulamento e Heranças.

Att.

N

Vou tentar aqui, obrigado pelo ajuda

N

Bom dia, desculpa só puder testar hoje e não deu certo...

Ele está retornando um valor null.

...
public class ConexaoBD {
	private static String url;
	
    public String getUrl(){  
        System.out.println(url);
    	return url;  

  } 
 

	
	public static Connection getConnectionDB() throws SQLException,
			ClassNotFoundException {

		Connection connection = null;

		String driverName = "net.sourceforge.jtds.jdbc.Driver";

		Class.forName(driverName);

		url = "jdbc:jtds:sqlserver://192.168.0.31:1436/QUA_UNIB_V307_ICO";
...

Se alguem puder ajudar eu agradeço.

Desde ja agradeço

att

G

sim, se você executar o getUrl() antes de agregar um valor ele ira retornar “null”

como está o metodo main ?

N

Deu certo, obrigado

Criado 21 de fevereiro de 2013
Ultima resposta 6 de mar. de 2013
Respostas 7
Participantes 4