No necesita el PreparedStatement . Utilice org.jfree.data.jdbc.JDBCPieDataset
constructor que acepta una consulta "que devuelve datos en dos columnas, la primera contiene VARCHAR y el segundo contiene datos numéricos". Puede usar el conjunto de datos en su ChartFactory .
JDBCPieDataset ds = new JDBCPieDataset(conn, "SELECT ...");
Se muestra un ejemplo completo aquí .