Ajuda bd java web!

Ola Galera, estou com uma duvida!
Tenho uma classe q busca dados em um bd acess!
Mas ele só busca pelo nome completo!
Com faço pra mudar isso!
Queria q qd o usuario digitasse qualquer palavra saisse resultados!
Exemplo:
se eu digitar : adr
ele sairia todos com essas letras, adriano , adriana e etc…
A classe é essa:

package pctel;

import java.sql.*;
import java.util.*;
import conexao.Conexao;

public class cadastroDAO {
    private String sql;


    public List listarTodos(){
        List resultado = null;
        try {
            sql = "select * from contatos";
            Connection con = Conexao.getConexaoODBC();
            Statement pstm = con.createStatement();

            ResultSet rs = pstm.executeQuery(sql);

            if(rs.next()){
                resultado = new ArrayList();
                    do {
                       cadastroVO pesquisa = preencherpesquisa(rs);
                       resultado.add(pesquisa);
                    } while (rs.next());
            }
            rs.close();
            pstm.close();
            con.close();

            return resultado;
        } catch (Exception ex) {
            ex.printStackTrace();
            return null;
        }
    }

    public List  pesquisar(String nome,String fone1,String fone2,String fone3,String fone4,
                                  String mail,String endereco,String obs){
        List resultado = null;
        String par = "";
        try {
            sql = "select * from contatos";
            if(!nome.equals("")){
                par = nome;
                sql += " where nome like ?";
            }else if(!fone1.equals("")){
                par = fone1;
                sql += " where fone1 like ?";
            }else if(!fone2.equals("")){
                par = fone2;
                sql += " where fone2 like ?";
            }else if(!fone3.equals("")){
                par = fone3;
                sql += " where fone3 like ?";
            }else if(!fone4.equals("")){
                par = fone4;
                sql += " where fone4 like ?";
            }else if(!mail.equals("")){
                par = mail;
                sql += " where email like ?";
            }else if(!endereco.equals("")){
                par = endereco;
                sql += " where endereco like ?";
            }else if(!obs.equals("")){
                par = obs;
                sql += " where observacao like ?";
            }
            //sql = "select * from contatos where nome like ?";
            Connection con = Conexao.getConexaoODBC();
            PreparedStatement pstm = con.prepareStatement(sql);
            if(!par.equals("")){
                pstm.setString(1, par);
            }
            ResultSet rs = pstm.executeQuery();

            if(rs.next()){
                resultado = new ArrayList();
                    do {
                       cadastroVO pesquisa = preencherpesquisa(rs);
                       resultado.add(pesquisa);
                    } while (rs.next());
            }
            rs.close();
            pstm.close();
            con.close();

            return resultado;
        } catch (Exception ex) {
            ex.printStackTrace();
            return null;
        }

    }

    public boolean insereCadastro(String nome, String fone1, String fone2, String fone3, String fone4,
                                  String mail, String endereco, String obs){
        try {
            sql = "insert into contatos(nome,fone1,fone2,fone3,fone4," +
                  "email,endereco,observacao) values('"+ nome +"','"+ fone1 +"','"+ fone2 +"','"+  fone3 +"','"+ fone4 +"','"+ mail +"','"+ endereco +"','"+ obs +"')";
            Connection con = Conexao.getConexaoODBC();
            Statement pstm = con.createStatement();

            int rs = pstm.executeUpdate(sql);

            if(rs != 0){
                pstm.close();
                con.close();
                return true;
            }else{
                pstm.close();
                con.close();
                return false;
            }

        } catch (Exception ex) {
            //ex.printStackTrace();
            return false;
        }

    }

    public boolean excluirCadastro(int id){
        try {
            sql = "delete from contatos where id = ?";
            Connection con = Conexao.getConexaoODBC();
            PreparedStatement pstm = con.prepareStatement(sql);
            pstm.setInt(1, id);
            int rs = pstm.executeUpdate();
            if(rs != 0){
                pstm.close();
                con.close();
                return true;
            }else{
                pstm.close();
                con.close();
                return false;
            }

        } catch (Exception ex) {
           return false;
        }
    }

    public boolean atualizarCadastro(String nome, String fone1, String fone2, String fone3, String fone4,
                                  String mail, String endereco, String obs, int  id){
        try {
            sql = "update contatos set nome = ?, fone1 = ?, fone2 = ?, fone3 = ?, fone4 = ?, email = ?, endereco = ?, observacao = ?  where id = ?";
            Connection con = Conexao.getConexaoODBC();
            PreparedStatement pstm = con.prepareStatement(sql);
            pstm.setString(1, nome);
            pstm.setString(2, fone1);
            pstm.setString(3, fone2);
            pstm.setString(4, fone3);
            pstm.setString(5, fone4);
            pstm.setString(6, mail);
            pstm.setString(7, endereco);
            pstm.setString(8, obs);
            pstm.setInt(9, id);
            int rs = pstm.executeUpdate();
            if(rs != 0){
                pstm.close();
                con.close();
                return true;
            }else{
                pstm.close();
                con.close();
                return false;
            }

        } catch (Exception ex) {
           return false;
        }
    }


    private cadastroVO preencherpesquisa(ResultSet rs) throws SQLException {
        cadastroVO pesquisa = new cadastroVO();
        pesquisa.setId(rs.getInt("id"));
        pesquisa.setNome(rs.getString("nome"));
        pesquisa.setFone1(rs.getString("fone1"));
        pesquisa.setFone2(rs.getString("fone2"));
        pesquisa.setFone3(rs.getString("fone3"));
        pesquisa.setFone4(rs.getString("fone4"));
        pesquisa.setMail(rs.getString("email"));
        pesquisa.setEndereco(rs.getString("endereco"));
        pesquisa.setObs(rs.getString("observacao"));
        return pesquisa;
    }

}

Por Favor alguem me ajuda nesse Sql!
Desde já agradeço

tche,

tenta assim acho q isso pode te ajudar

“select * from contato where nome like ‘%’” + texto + “%’ or endereco like ‘%’” + texto + “%’ or fone like ‘%’” + texto + “%’”

Tenta isso ae …

sql = "select * from contatos where nome like ‘%adr%’;

espero ter ajudado

o/

Ehh … mesma coisa que o Bruxel disse

**me esqueci do atributo =D

Use PreparedStatement

Ficaria algo como:

PreparedStatement prst = con.prepareStatement("select * from contatos where nome like '%?%'");
prst.setString(1, usuario.getNome());

...

mais exemplos de uso aqui : link

[]'s