Dúvida sobre consulta ao banco!

Olá galera…
Estou precisando de uma ajuda aqui com uma consulta ao banco de dados que estou precisando fazer em uma nova aplicação que estou desenvolvendo…
É o seguinte… preciso fazer uma consulta em uma tabela que tem números como chave promária para identificação delas em uma parte do sistema… mas o que eu estou precisando é pegar todos os registros que, por exemplo, tenham um código == 2, ou começem com o número 2 … Mais ou menos assim:

 sql = connection.prepareStatement("select from materiais where codigo =? OR codigo like '_%')

Mas o que acontece é o seguinte… essa parte do like só aceita se eu colocar diretamente como o código vai começar… então eu teria que ter no caso 9 métodos e cada um de maneira diferente… por exemplo

sql = connection.prepareStatement("select from materiais where codigo =? OR codigo like '1%')
sql = connection.prepareStatement("select from materiais where codigo =? OR codigo like '2%')

… e por ae vai até o 9!
Então gostaria de saber como posso fazer essa consulta passando um curinga da mesma maneira que estou passando para o where codigo = ?

Não sei se fui muito claro! Agradeço a ajuda de todos ae!!
Abraços

Amigo, nao entendi porque a necessidade ter 9 selects uma para cada numero. Vc passará parametros para a query?
uma já é necessaria pelo o que entendi

Amigo, vc pode concatenar Strings como mostrado abaixo:

sql = connection.prepareStatement("select from materiais where codigo =? OR codigo like ' " + curinga+ "%' ");

talvez você possa criar uma String com a consulta:

String consulta = "select * from materiais where codigo =? OR codigo like '#%'";

e dar um replace:

consulta = consulta.replaceFirst("#", "1"); consulta = consulta.replaceFirst("#", "2"); ...
e usar a string no PreparedStatement…

abraço.

Será que esse laço não te ajuda:

for (int i = 0; i <= 10; i++) {
     sql = connection.prepareStatement("select from materiais where codigo = ? OR codigo like ?");
    sql.setInt(1, i);
    sql.setString(2, i + "%");
}

Olá amigos!!!
Desculpe a demora para olhar o tópico… .mas é que estive viajando e agora quando voltei estava tendo problemas com minha internet!
Tentei fazer o que o amigo francislon falou mas não está dando certo pessoal!
Eu tentei também a seguinte maneira:

 sql = c.prepareStatement("select *  from materiais where codigo like '?%'");

Só que não está indo… .está dando erro… dizendo que o número de índice das colunas é 0, e que eu fiz referência ao índice 1 …
Só que não estou conseguindo entender esse erro…
e quando eu passo daquela maneira sql = c.prepareStatement ("select * from materiais where codigo = ? OR codigo like'?%'"); Ele também não vai!
ME ajuda ae galera… to precisando terminar esse sistema aqui!!!
Grato a todos pela ajuda!
PS: Vou tentar o lance da String agora amigo… O que esse método ReplaceFirst faz exatamente???
Abraços