Help, please. Coisa de iniciante

Oi pessoal

Estou desenvolvendo um site em java que já possui as seguintes classes:

dbaccess - classe que controla a conexão com o db;
dbmethods - executa métodos no db, como retornar ResultSet de uma consulta, ou apenas executar a consulta.

Estou tendo problema para chamar um método da classe dbmethods a partir de uma página jsp, o erro é:

C:\Tomcat5\work\Catalina\localhost\gsp\org\apache\jsp\test_005fcon_jsp.java:60: non-static method getResultset(java.lang.String) cannot be referenced from a static context
ResultSet tabela = dbmethods.getResultset(strSQL);

Código da página JSP:

dbaccess.setConexao("c:/tomcat5/webapps/gsp/gsp.mdb");

String strSQL = "SELECT * FROM usuarios";
StringBuffer saida = null;

ResultSet tabela = dbmethods.getResultset(strSQL);

saida = new StringBuffer();
saida.append("<h3>Resultado</h3><p>");

while (tabela.next())
{
	saida.append("Id usuário: ").saida(tabela.getString("id_usuario"));
}
public ResultSet getResultset(String sql){
    ResultSet rsTable = null;
    try{
        conn = dbaccess.getInstance().RetornaConexao();
        if (conn == null)
        {
            System.out.println("Banco de dados não disponível.");	
         }
         stmt = conn.createStatement();
         rsTable = stmt.executeQuery(sql);
    } 
    catch (Exception e)
    {
        System.out.println(e.getMessage());
    }
    finally 
    {
        dbaccess.getInstance().FechaConexao();
        try{stmt.close();}catch(Exception ee){};
    }
    return rsTable;
}

pelo visto é simples… não olhei o código todo… mas c vc colocar

vai parar o erro… o problema ali é q vc ta tentando acessar um método estaticamente… e este método não é estatico

pois é, isso que eu não entendi.

pq ele tá dizendo que eu estou chamando estaticamente o método a partir na página jsp? Isso é que não me entrou na cabeça :confused:

vou fazer a mudança pra ver o que acontece.

Valeus.

Bom… pq??
vamos a resposta…

qual o nome da sua classe?? dbmethods ?? pergunto pq o normal é iniciar com maiusculas…

bom se este for o nome da sua classe… quando vc faz

dbmethods.metodo();// ... isso é uma referencia estatica....

//agora...

dbmethods meuDbMethods = new dbmethods();
meuDbMethods.metodo(); //isso aqui não é referencia estatica

[quote=“rashi”]pois é, isso que eu não entendi.

pq ele tá dizendo que eu estou chamando estaticamente o método a partir na página jsp? Isso é que não me entrou na cabeça :confused:

vou fazer a mudança pra ver o que acontece.

Valeus.[/quote]

Ah tah, entendi :slight_smile:

mas acho que vou ter que mudar o que já fiz.
É o seguinte, preciso fazer o site com a estrutura:

  • classe para controlar as conexões (pool)
  • classe para efetuar consultas
  • front-end em JSP.

O problema que estou enfrentando agora é outro:

  • preciso fazer, em uma página JSP, uma chamada à classe de regras de negócios e, então, de posse do ResultSet, exibir os dados.
    O problema é que ele sempre acusa que o ResultSet está fechado :confused:

Mas o que piora minha situação é que lendo um monte de livro e tutoriais não consigo encontrar nada que sequer chegue perto do que preciso fazer.

To lascada :confused:

[quote=“rashi”]Ah tah, entendi :slight_smile:

mas acho que vou ter que mudar o que já fiz.
É o seguinte, preciso fazer o site com a estrutura:

  • classe para controlar as conexões (pool)
  • classe para efetuar consultas
  • front-end em JSP.

O problema que estou enfrentando agora é outro:

  • preciso fazer, em uma página JSP, uma chamada à classe de regras de negócios e, então, de posse do ResultSet, exibir os dados.
    O problema é que ele sempre acusa que o ResultSet está fechado :confused:

Mas o que piora minha situação é que lendo um monte de livro e tutoriais não consigo encontrar nada que sequer chegue perto do que preciso fazer.

To lascada :/[/quote]

Bom para inicio tente isso

crie um pagina chamada Conexao.jsp só com esse código

<%
 
                     
                          Class.forName("org.gjt.mm.mysql.Driver").newInstance();
                          Connection con = DriverManager.getConnection("jdbc:mysql://localhost/banco?user=user&password=pass");
						  Statement stm=con.createStatement();
%>

Depois cire uma pagina de teste d consulta:

<%@ include file="Conexao.jsp" %>
//pronto incluiu a chamada d conexao com o banco

//agora faça a consulta:
        <%
String queryMapas="Select id,nome,nota,nnotas from xtabMapas Order by id desc";
String mapa="";
int id=0;
try{
ResultSet rs=stm.executeQuery(queryMapas);
while(rs.next()){
id=rs.getInt("id");
mapa=rs.getString("nome");
}

}
catch(SQLException ex){
out.println("Erro"+ex);
}

//se vc não tiver mans nenhuma consulata , pode fechar a conexão aqui, se tiver só feche depois da ultima.
finally{
stm.close();
con.close();
%>
}

Depois vc adapta parausar Beans, mas no começõ tente isso!! Valeu!!