Stmt is not public in Menus.Banco; cannot be acessed from outside package

3 respostas
B

O seguinte erro:

stmt is not public in Menus.Banco; cannot be acessed from outside package.

Uso uma Classe banco para chamar conexão com o banco de dados. Segue o codigo:

1. package Menus;  
   2.   
   3. import java.sql.Connection;  
   4. import java.sql.DriverManager;  
   5. import java.sql.ResultSet;  
   6. import java.sql.SQLException;  
   7. import java.sql.Statement;  
   8.   
   9. public class Banco {  
  10.   
  11.     /** Creates a new instance of Banco */  
  12.     public Banco() {  
  13.     }  
  14.   
  15.     String url;  
  16.     Connection con;  
  17.     Statement stmt;  
  18.   
  19.     public void conecta(){  
  20.         try{  
  21.             Class.forName("org.gjt.mm.mysql.Driver");  
  22.             url="jdbc:mysql://localhost/banco";  
  23.             con=DriverManager.getConnection(url,"root","");  
  24.             stmt=con.createStatement();  
  25.         }catch (ClassNotFoundException e){  
  26.             e.printStackTrace();  
  27.             System.out.println("Driver não Encontrado!");  
  28.         }catch (SQLException e){  
  29.             e.printStackTrace();  
  30.             System.out.println("Problemas com a Conexão!");  
  31.         }  
  32.     }  
  33.   
  34.     public void desconecta(){  
  35.         try{  
  36.             stmt.close();  
  37.             con.close();  
  38.         }catch (SQLException e){  
  39.             e.printStackTrace();  
  40.         }  
  41.     }  
  42.   
  43.     public ResultSet res(String Quest)  {  
  44.         conecta();  
  45.         try {  
  46.             stmt = con.prepareStatement(Quest);  
  47.             return (stmt.executeQuery(Quest));  
  48.         } catch (SQLException e) {  
  49.             return(null);  
  50.         }  
  51.     }  
  52. }

E um botao de cadastro:

1. bancoPlaystation.conecta();  
   2.         Classificacao = String.valueOf(campoClassificacao.getSelectedItem());  
   3.         if (Classificacao.equals("12 Anos")) {  
   4.             Classificacao = "12";  
   5.         } else if (Classificacao.equals("14 Anos")) {  
   6.             Classificacao = "14";  
   7.         } else if (Classificacao.equals("16 Anos")) {  
   8.             Classificacao = "16";  
   9.         } else if (Classificacao.equals("18 Anos")) {  
  10.             Classificacao = "18";  
  11.         } else if (Classificacao.equals("Livre")) {  
  12.             Classificacao = "Li";  
  13.         }  
  14.         if (Situacao.equals("Disponível")) {  
  15.             Situacao = "Di";  
  16.         } else if (Classificacao.equals("Emprestado")) {  
  17.             Situacao = "Em";  
  18.             try {  
  19.                 if (botao == 1) {  
  20.                     bancoPlaystation.stmt.execute("INSERT INTO PLAYSTATION VALUES(0,"  
  21.                             + "'" + campoNome.getText() + "',"  
  22.                             + "'" + campoDescricao.getText() + "',"  
  23.                             + "'" + campoDataCadastro.getText() + "',"  
  24.                             + "'" + campoLancamento.getText() + "',"  
  25.                             + "'" + Classificacao + "',"  
  26.                             + "'" + campoDesenvolvedora.getText() + "',"  
  27.                             + "'" + campoDistribuidora.getText() + "',"  
  28.                             + "'" + campoGenero.getText() + "',"  
  29.                             + "'" + Situacao + "',"  
  30.                             + "'" + campoPara.getText() + "')");  
  31.                 } else {  
  32.                     bancoPlaystation.stmt.execute("UPDATE PLAYSTATION SET DESCRICAO='" + campoDescricao.getText() + "',DATA_CADASTRO='" + campoDataCadastro.getText() + "',DATA_LANCAMENTO='" + campoLancamento.getText() + "',CLASSIFICACAO='" + Classificacao + "',DESENVOLVEDORA='" + campoDesenvolvedora.getText() + "',DISTRIBUIDORA='" + campoDistribuidora.getText() + "',GENERO='" + campoGenero.getText() + "',SITUACAO='" + Situacao + "',PARA='" + campoPara.getText() + "' WHERE NOME=" + campoNome.getText());  
  33.                 }  
  34.                 bancoPlaystation.stmt.execute("COMMIT");  
  35.             } catch (SQLException e) {  
  36.                 JOptionPane.showMessageDialog(null, e);  
  37.             }  
  38.             bancoPlaystation.desconecta();  
  39.         }  
  40.     }

No erro diz que o pacote não e public. Alguem sabe como resolver?

3 Respostas

marvinla

A variável “stmt” deve ser declarada como pública.

public Statement stmt;

Quando você não especifica um modificador de acesso (public, private, protected) assume-se o acesso default. Neste caso somente subclasses no mesmo pacote tem acesso à variável.

Abraços.

rogelgarcia

Nao… nao foi isso que disse o erro…

stmt não é público em Menus.Banco; não pode ser acessada fora do pacote.

http://javafree.uol.com.br/topic-867422-Private-New-e-Public.html

B

marvinla:
A variável “stmt” deve ser declarada como pública.

public Statement stmt;

Quando você não especifica um modificador de acesso (public, private, protected) assume-se o acesso default. Neste caso somente subclasses no mesmo pacote tem acesso à variável.

Abraços.

Bom, agora entendi, consegui resolver esse pequeno problema. Muito obrigado

rogelgarcia:

http://javafree.uol.com.br/topic-867422-Private-New-e-Public.html

http://estacaozn.blogspot.com/2007/05/private-public-published-escopo-de.html

Vou ler!

Criado 15 de junho de 2010
Ultima resposta 16 de jun. de 2010
Respostas 3
Participantes 3