Erro ao criar método

10 respostas
P

Pessoal estou tentando criar um método e dá o erro de:

Illegal start of type

Meu código:

public boolean abrirbanco(){
        try{
            conexao = DriverManager.getConnection(DB_BANCO, DB_USUARIO, DB_SENHA);
            stm = conexao.prepareStatement(getSelect());
            retorno_conexao = true;
            return true;
        }catch(SQLException sqle){
            JOptionPane.showMessageDialog(this,
                    "Impossível conectar com o Banco de Dados!",
                    "Erro!",
                    JOptionPane.ERROR_MESSAGE);
        }
      }

10 Respostas

Mantu

poderia postar a classe inteira? To achando que é algo relacionado ao “public class Blablkabla”…

P

Olha a classe aí:

package br.com.bwilson.conexao;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Properties;
import javax.swing.JOptionPane;

/**
 *
 * @author petter
 */
public class Conexao {
    
    private Properties confBanco = new Properties();
    private String INI = "conexaoBanco.ini";
    private String DB_CLASS;
    private String DB_BANCO;
    private String DB_USUARIO;
    private String DB_SENHA;
    public Connection conexao;
    private boolean retornoConexao = false;
    private PreparedStatement stm;
    public String select;
    
    public String getSelect(String select){
        return select;
    }
    
    public String setSelect(String select){
        this.select = select;
        return select;
    }
    
    public Conexao() throws FileNotFoundException, IOException, ClassNotFoundException, SQLException {      
        
        try{
            confBanco.load(new FileInputStream(INI));
            DB_CLASS = confBanco.getProperty("driver");
            DB_BANCO = confBanco.getProperty("url")+
              (!confBanco.getProperty("porta").equals("")? ":" + confBanco.getProperty
              ("porta") : confBanco.getProperty("porta"))
              +confBanco.getProperty("banco");

            DB_USUARIO = confBanco.getProperty("usuario");
            DB_SENHA = confBanco.getProperty("senha");
            Class.forName(DB_CLASS);
        }catch(FileNotFoundException fnfe){
            JOptionPane.showMessageDialog(null,
                    "Arquivo do Banco de Dados não encontrado!",
                    "Erro!",
                    JOptionPane.ERROR_MESSAGE);            
        }catch(IOException ioe){
            JOptionPane.showMessageDialog(null,
                    "Exceção do tipo IOException gerada!",
                    "Erro!",
                    JOptionPane.ERROR_MESSAGE);
        }catch(ClassNotFoundException cnfe){
            JOptionPane.showMessageDialog(null,
                    "Exceção do tipo ClassNotFoundException gerada!",
                    "Erro!",
                    JOptionPane.ERROR_MESSAGE);
        }
        
        public boolean abrirbanco(){
        try{
            conexao = DriverManager.getConnection(DB_BANCO, DB_USUARIO, DB_SENHA);
            stm = conexao.prepareStatement(getSelect());
            retorno_conexao = true;
            return true;
        }catch(SQLException sqle){
            JOptionPane.showMessageDialog(this,
                    "Impossível conectar com o Banco de Dados!",
                    "Erro!",
                    JOptionPane.ERROR_MESSAGE);
        }
      }
    }
        
    
}
thiago.correa

O teu método abrirbanco está dentro do contrutor.

P

O meu método estava dentro de outro método. Retirei ele para fora e tudo está funcionando.

Só por curiosidade: um método não pode conter outro?

thiago.correa

Se pudesse você não estaria tendo esse problema :smiley:

Leandro_BSB

Um método pode sim conter outro.

[]s

Leandro

Jaison

Leandro BSB:
Um método pode sim conter outro.

[]s

Leandro

então vc pode me da um exemplo? :smiley:

P

Pessoal muito obrigado pela ajuda de vcs, mas como ainda sou novato no Java, estou com alguns problemas entre criar e invocar um metodo. Vou passar abaixo um codigo que gerei para testar minhas “habilidades” de trabalhar com metodos. A classe Conexao tem metodos para gerenciar a conexao e a classe Select invoca os métodos da classe Conexao para fazer um select simples. Gostaria que vcs analisassem o meu código para ver se estou no caminho certo, se a lógica é essa mesma ou se estou fazendo alguma barbaridade.
Classe Conexao:

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Properties;
import javax.swing.JOptionPane;

/**
 *
 * @author petter
 */
public class Conexao {
    
    private Properties confBanco = new Properties();
    private String INI = "conexaoBanco.ini";
    private String DB_CLASS;
    private String DB_BANCO;
    private String DB_USUARIO;
    private String DB_SENHA;
    public Connection conexao;
    private boolean retornoConexao = false;
    private PreparedStatement stm;
    public String select;
    
    public String getSelect(){
        return select;
    }
    
    public String setSelect(String select){
        this.select = select;
        return select;
    }
    
    public void conexao() throws FileNotFoundException, IOException, ClassNotFoundException, SQLException {      
        
        try{
            confBanco.load(new FileInputStream(INI));
            DB_CLASS = confBanco.getProperty("driver");
            DB_BANCO = confBanco.getProperty("url")+
              (!confBanco.getProperty("porta").equals("")? ":" + confBanco.getProperty
              ("porta") : confBanco.getProperty("porta"))
              +confBanco.getProperty("banco");

            DB_USUARIO = confBanco.getProperty("usuario");
            DB_SENHA = confBanco.getProperty("senha");
            Class.forName(DB_CLASS);
        }catch(FileNotFoundException fnfe){
            JOptionPane.showMessageDialog(null,
                    "Arquivo do Banco de Dados não encontrado! Código do erro: " + fnfe.toString(),
                    "Erro!",
                    JOptionPane.ERROR_MESSAGE);            
        }catch(IOException ioe){
            JOptionPane.showMessageDialog(null,
                    "Exceção do tipo IOException gerada! Código do erro: " + ioe.toString(),
                    "Erro!",
                    JOptionPane.ERROR_MESSAGE);
        }catch(ClassNotFoundException cnfe){
            JOptionPane.showMessageDialog(null,
                    "Exceção do tipo ClassNotFoundException gerada! Código do erro: " + cnfe.toString(),
                    "Erro!",
                    JOptionPane.ERROR_MESSAGE);
        }
      }
        public void abrirbanco(){
        try{
            conexao = DriverManager.getConnection(DB_BANCO, DB_USUARIO, DB_SENHA);
            stm = conexao.prepareStatement(getSelect());
        }catch(SQLException sqle){
            JOptionPane.showMessageDialog(null,
                    "Impossível conectar com o Banco de Dados! Código do erro: " + sqle.toString(),
                    "Erro!",
                    JOptionPane.ERROR_MESSAGE);
        }
      }        
    
}

Classe Select:

import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.SQLException;

/**
 *
 * @author petter
 */
public class Select {
    
    public Select() {
        Conexao conexao2 = new Conexao();
        
        try{
        conexao2.conexao();
        conexao2.setSelect("select * from teste");
        conexao2.abrirbanco();
        }catch(FileNotFoundException fnfe){
            
        }catch(IOException ioe){
            
        }catch(ClassNotFoundException cnfe){
            
        }catch(SQLException sqle){
            
        }
        
    }
    
}
Leandro_BSB

Jaison:
Leandro BSB:
Um método pode sim conter outro.

[]s

Leandro

então vc pode me da um exemplo? :D

segue um exemplo:

public class C {

	public void m1(){
		
	}
	
	public void m2(){
		m1();
	}
}

O que não pode acontecer é a declaração de um método dentro de outro.

[]s

Leandro

gui_sv

É permitido chamar um metodo dentro de outro… nao DECLARAR um metodo em outro … =]

Criado 23 de junho de 2006
Ultima resposta 26 de jun. de 2006
Respostas 10
Participantes 6