Você não precisa do
PreparedStatement . Use o org.jfree.data.jdbc.JDBCPieDataset
construtor que aceita uma consulta "que retorna dados em duas colunas, a primeira contendo VARCHAR dados e o segundo contendo dados numéricos." Você pode usar o conjunto de dados em seu ChartFactory . JDBCPieDataset ds = new JDBCPieDataset(conn, "SELECT ...");
Um exemplo completo é mostrado aqui .