System.out.print ln aparece , mas return nao

9 respostas
D

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!!

9 Respostas

peczenyj

Tenta assim:

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

diego2005

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+

D

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

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
       	
    }

    
}
Alguém pode testa e ver c da por favor...Pelo menos aki nao deu!!

Valeuuu!!

Marky.Vasconcelos

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;
D

Ainda nao deu pessoal…
TEm como alguem testar??

Valeu!!

G

danielsan8787:
Ainda nao deu pessoal…
TEm como alguem testar??

Valeu!!

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

[]'s
Geraldo

KWill

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!!

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é.

D

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…

KWill

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é.

Criado 6 de agosto de 2007
Ultima resposta 10 de ago. de 2007
Respostas 9
Participantes 6