Не се нуждаете от PreparedStatement . Използвайте org.jfree.data.jdbc.JDBCPieDataset
конструктор, който приема заявка, "която връща данни в две колони, като първата съдържа VARCHAR данни, а вторият съдържа числови данни." Можете да използвате набора от данни във вашия ChartFactory .
JDBCPieDataset ds = new JDBCPieDataset(conn, "SELECT ...");
Пълен пример е показан тук .