PreparedStatement non si usa come lo usi tu.

Anzitutto, i nomi di campi o tabelle non possono essere parametri (quelli che poi setti con i metodi setString, setInt, ecc.).
Inoltre, ogni singolo parametro deve essere rappresentato da un segnaposto (?) diverso.

Dovresti fare:
codice:
pst=conn.prepareStatement("INSERT INTO categorie (nome, descr) VALUES ?, ?");
pst.setString(1, "asd");
pst.setString(2, "asd");
System.out.println(pst.toString());