PreparedStatment me deu um problema

Eu preciso executar a seguinte query
select * from tabela where ‘variavel de data’ between data1 and data2
só que no programa ficaria assim
select * from tabela where ‘?’ …
quando o parametro está entra aspa simples ele não funciona alguem tem idéia de como resolver isso?

Segue o exemplo

	String query = "select * from nome_da_tabela where campo1 = ? and campo2 = ? and campo3 = ?"
		PreparedStatement stmt = this.connection.prepareStatement(query);
		stmt.setString(1, campo1);
		stmt.setString(2, campo2);
		stmt.setString(3, campo3);

Se eu não me engano, não é necessário colocar as aspas simples. Ele mesmo se encarrega…

Pior que não insere, já retirei e ele retorna empty set… o problema é justamente usar com o between =(

EDIT: Eu converti as datas para string aí funcionou

voce pode usar os operadores de igualdade. ao inves de usar o between.

Testei, mas continuaria dando problema porque ainda assim precisaria de aspas simples:

select * form nome_da_tabela where data_inicio < ‘1990-10-10’ and data_fim > ‘1990-10-10’;