Alteração de dados / Recuperar Obj Serializados

boa tarde,

estou fazendo inserções em uma base de dados conforme abaixo:

public class Pessoa(){
private String nome;
private String fone;

public Pessoa(String nome, String fone){
this.nome = nome;
}

public String getNome(){
return nome;
}

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

public String getFone(){
return fone;
}

public void setFone(String fone){
this.fone = fone;
}

}

A seguir utilizo prepareStatement (INSERT INTO) e tudo certo…

a dúvida é seguinte:

se eu recuperar somente o nome através de "select nome from pessoa where nome = " + nome;

o resultado irá aqui String nomeRecuperado = resultado da query acima

e fizer pessoa.setNome(nomeRecuperado);

então posso dar um pessoa.getFone(); e terei o fone ??? quero na verdade recuperar o objeto… ou devo fazer conforme abaixo, serealizar e após deserializar para ter o objeto?

      // Serealizar
      ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("c:/pessoa.ser"));
      os.writeObject(pessoa);

      // Deserializar
       ObjectInputStream is = new ObjectInputStream(new FileInputStream("c:/pessoa.ser"));
       Pessoa pessoa = (pessoa) is.readObject();

tem alguma outra maneira de persistir objetos exceto hibernate?

tendo isso posso alterar os dados da base com maior flexibilidade