Smyslem připravených příkazů je mimo jiné to, abyste své dotazy sami nezřetězovali.
Chcete provést následující:
//first you "prepare" your statement (where the '?' acts as a kind of placeholder)
PreparedStatement st = con.prepareStatement("insert into user (user,age,school,password) values (?,?,?,?);");
//now you bind the data to your parameters
st.setString(1, user);
...
//and then you can execute it
st.executeUpdate()
Další podrobnosti najdete v oficiálním tutoriálu .
V zákulisí se děje několik věcí, které činí dotaz bezpečným, jako je escapování speciálních znaků, které by jinak umožňovaly změnu příkazu (injekce google SQL, pokud chcete vědět více)