System.out.print ln aparece , mas return nao

Fala galera!
TEnho o seguinte método

[color=blue]public String linhas() throws SQLException{
Connection con = null;
ResultSet rs = null;
PreparedStatement ps = null;

    try{
        Class.forName("com.mysql.jdbc.Driver");
        con = DriverManager.getConnection("jdbc:mysql://localhost:3306/cliente", "root","123");
    }catch(java.lang.ClassNotFoundException e){
        System.out.println("Driver do mysql nao encontrado");
    }
    Statement s = con.createStatement();
String sql = "select count(*)as a from dados";
rs = s.executeQuery(sql);
rs.next();
System.out.println(rs.getString("a"));
return rs.getString("a");
   	
}[/color]

O pobrema é oseguinte…
Quando chamo rs.getString(“a”) no system.out.println, ele aparece no console. o problema é no return , ele nao retorna nada…
Ex: Cliente c = new Cliente();
c.linhas();

Alguém sabe qual é o problema??

Valeu!!

Tenta assim:

String A = rs.getString("a"); System.out.println("O valor de a eh: " + A); return A;

O problema é que quando você faz:

rs.getString("a");

Ele traz o valor e vai para o próximo registro, mas como não existe próximo registro, ele não retorna nada.

Faz como o peczenyj falou que vai dar certo…

T+

Fala rapazeada!
Entao , ainda nao deu…Irei colcoar a classe inteira aki…

[code]import java.sql.*;

public class Cliente {

private String nome;
private String sobrenome;
private int idade;
private String linhas;

/** Creates a new instance of Cliente */
public Cliente() {
    this.nome = nome;
    this.sobrenome = sobrenome;
    this.idade = idade;
}

public void setNome(String nome){
    this.nome = nome;
}
public String getNome(){
    return this.nome;
}

public void setSobrenome(String sobrenome){
    this.sobrenome = sobrenome;
}
public String getSobrenome(){
    return this.sobrenome;
}

public void setIdade(int idade){
    this.idade = idade;
}
public int getIdade(){
    return idade;
}

public String linhas() throws SQLException{
    Connection con = null;
    ResultSet rs = null;
    PreparedStatement ps = null;
    
    try{
        Class.forName("com.mysql.jdbc.Driver");
        con = DriverManager.getConnection("jdbc:mysql://localhost:3306/cliente", "root","123");
    }catch(java.lang.ClassNotFoundException e){
        System.out.println("Driver do mysql nao encontrado");
    }
Statement s = con.createStatement();
String sql = "select count(*)as a from dados";
rs = s.executeQuery(sql);
rs.next();
System.out.println(rs.getString("a"));//este funciona
String a = rs.getString("a");
return a;//aki nao
   	
}

}

[/code]
Alguém pode testa e ver c da por favor…Pelo menos aki nao deu!!

Valeuuu!!

muda isso

rs.next();
System.out.println(rs.getString("a"));
String a = rs.getString("a");
 return a;

por isso

rs.next();
String a = rs.getString("a");
System.out.println(a);
return a;

Ainda nao deu pessoal…
TEm como alguem testar??

Valeu!!

[quote=danielsan8787]Ainda nao deu pessoal…
TEm como alguem testar??

Valeu!![/quote]

do jeito que o Mark disse era pra funcionar…
e é impresso certo? (dessa maneira)

[]'s
Geraldo

[quote=danielsan8787]Fala galera!
TEnho o seguinte método

[color=blue]public String linhas() throws SQLException{
Connection con = null;
ResultSet rs = null;
PreparedStatement ps = null;

    try{
        Class.forName("com.mysql.jdbc.Driver");
        con = DriverManager.getConnection("jdbc:mysql://localhost:3306/cliente", "root","123");
    }catch(java.lang.ClassNotFoundException e){
        System.out.println("Driver do mysql nao encontrado");
    }
    Statement s = con.createStatement();
String sql = "select count(*)as a from dados";
rs = s.executeQuery(sql);
rs.next();
System.out.println(rs.getString("a"));
return rs.getString("a");
   	
}[/color]

O pobrema é oseguinte…
Quando chamo rs.getString(“a”) no system.out.println, ele aparece no console. o problema é no return , ele nao retorna nada…
Ex: Cliente c = new Cliente();
c.linhas();

Alguém sabe qual é o problema??

Valeu!!
[/quote]

Como você está avaliando o retorno da chamada de método no trecho ‘c.linhas();’?. Se apareceu no console através do ‘System.out.println(String x)’, então a mesma String deve ser retornada pela chamada do método ‘linhas()’ da instãncia dessa classe ‘Cliente’.

Sugiro que você troque o trecho ‘c.linhas();’ por ‘System.out.println(c.linhas);’, para averiguar o conteúdo da String retornada. Se tudo estiver certo, a mesma String deve aparecer duas vezes no console.

Inté.

Entao , nao seria possivel trocar por system.out.print ln por que eu irei usar ele numa jsp, sendo assim, system.out.println nao retornara no browser…

Então acho que você deveria ter dado mais detalhes sobre o seu problema/dúvida. Se você precisa exibir o retorno de c.linhas() num jsp, use:

<%=c.linhas()%>

ou:

<%out.print(c.linhas());%>

O objeto referenciado por ‘out’ só está previamente disponível dentro de tags scriptlet. Ambos servem para escrever alguma string via jsp.

Inté.