JDBC, Duvida no SQL

Pessoal, Estou com dificuldade em fazer um select usando where, acho que o problema está na forma que estou passando o parametro, gostaria de uma forma de passar usando (?) depois usar um setString, mas tentei e tambem não funcionou, agradeço a ajuda galera!

Codigo do DAO:
Estou tendo SQLExeption,

public void teste() throws SQLException {

	PreparedStatement stmt;
	  

[b]	stmt = con.prepareStatement("SELECT * FROM contatos WHERE nome like 'Wilson%'"); [/b]
			                    
	ResultSet rs = stmt.executeQuery();
	List<Contato> list = new ArrayList<Contato>();

	while (rs.next()) {
		
		Contato c = new Contato();
		c.setId(rs.getLong("id"));
		c.setNome(rs.getString("nome"));
		c.setEmail(rs.getString("email"));
		c.setEndereco(rs.getString("endereco"));
		list.add(c);
	}

	rs.close();
	stmt.close();
	con.close();

	
}

Viu naum sei se entendi direito a sua duvida, o que vc quer fazer é passar uma variavel no where? Se for é so fazer isso:

stmt = con.prepareStatement(“SELECT * FROM contatos WHERE nome like ‘“variavel+”%’”);

qual o erro q aparece?

use assim:

stmt = con.prepareStatement(“SELECT * FROM contatos WHERE nome like ?”);

stmt.setString(1, “Wilson%”);

a