Problemas com criaçao de método

galera estou com um proble nao estou conseguindo criar um método para me retornar um campo do banco o que estou fazendo errado?

[code] public pegaNomeUser(String nome_user) throws SQLException {

    Connection conexao = con.abrirConexao();

    Statement st = null;
    ResultSet rs = null;

    try {
        st = conexao.createStatement();
        rs = st.executeQuery("Select nome_user from bdconta where login = '" + nome_user + "' ");
       
    } catch (SQLException erro) {
        System.out.println(erro);
    } finally{
        rs.close();
        st.close();
        con.fecharConexao(conexao);
    }
    return nome_user;

}[/code]

Ja agradeço pela ajuda

  1. Use um PreparedStatement. Não concatene strings em suas queries, pois isso é uma falha grave de segurança (além de ser mais difícil e deixar o código porco de ler);
  2. Você deve usar o método rs.getString(“nome_user”);
  3. Você deve retornar antes de fechar o resultSet e o Statement:

[code] public pegaNomeUser(String nome_user) throws SQLException {

    Connection conexao = con.abrirConexao();

    PreparedStatement st = null;
    ResultSet rs = null;

    try {
        st = conexao.prepareStatement("SELECT nome_user FROM bdconta WHERE login = ?");
        st.setString(1, nome_user);
        rs = st.executeQuery();
        return rs.getString("nome_user");           
    } catch (SQLException erro) {
        System.out.println(erro);
    } finally{
        rs.close();
        st.close();
        con.fecharConexao(conexao);
    }
    return null;

}[/code]