最近在学习jfreechart中遇到这样的问题,我用JDBC连接Oracle数据库取出数据在图表中显示,但是从oracle中取出的中文字符为乱码,这个问题该如何解决:
下面是我的代码:
ChartDemoServlet.java:
package servlet;
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.*;
import org.jfree.chart.*;
import java.sql.*;
import org.jfree.data.general.PieDataset;
import org.jfree.data.jdbc.JDBCPieDataset;
public class ChartDemoServlet extends HttpServlet {
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException
{
res.setContentType("image/jpeg;charset=gb2312"
;
PieDataset data = readData();
JFreeChart chart = ChartFactory.createPie3DChart("水果产量图",
data,
true,
false,
false
);
ChartUtilities.writeChartAsJPEG(res.getOutputStream(),
100,chart,400,300,null);
}
private PieDataset readData(){
JDBCPieDataset data=null;
String url="jdbc
racle:thin:@localhost:1521:testchar";
String user="system";
String password="manager";
Connection conn;
try {
Class.forName("oracle.jdbc.driver.OracleDriver"
;
}
catch(ClassNotFoundException e){
System.err.print("ClassNotFoundException:"
;
System.err.println(e.getMessage());
}
try {
conn=DriverManager.getConnection(url,user,password);
data=new JDBCPieDataset(conn);
String sql="select * from piedata";
data.executeQuery(sql);
conn.close();
}
catch (SQLException e){
System.err.print("SQLException:"
;
System.err.println(e.getMessage());
}
catch (Exception e){
System.err.print("Exception:"
;
System.err.println(e.getMessage());
}
return data;
}
}
请大家帮帮忙啊..........]
在线等.............
|