Database 使用数据访问对象获取JFreeChart数据&;Servlet
我的目标是使用Java生成条形图,因此我搜索了一个可以这样做的库。很快我找到了图书馆,并从这里下载了它 给出的教程是数据是硬代码。以我为例。然而,我试图使用数据访问对象(DAO)和Servlet从数据库中获取JFreeChart数据 演示如何从数据库获取JFreeChart数据。但它不使用DAO 有没有人可以帮助我如何使用DAO和SERVLET获取JFreeChart数据 在DAO中,我应该创建一个返回arraylist、整数或布尔值的方法吗 我希望我的图表像这样。 我的数据库 我的servletDatabase 使用数据访问对象获取JFreeChart数据&;Servlet,database,servlets,jfreechart,dao,bar-chart,Database,Servlets,Jfreechart,Dao,Bar Chart,我的目标是使用Java生成条形图,因此我搜索了一个可以这样做的库。很快我找到了图书馆,并从这里下载了它 给出的教程是数据是硬代码。以我为例。然而,我试图使用数据访问对象(DAO)和Servlet从数据库中获取JFreeChart数据 演示如何从数据库获取JFreeChart数据。但它不使用DAO 有没有人可以帮助我如何使用DAO和SERVLET获取JFreeChart数据 在DAO中,我应该创建一个返回arraylist、整数或布尔值的方法吗 我希望我的图表像这样。 我的数据库 我的servl
要在servlet中进行简单访问,请创建一个类,并将实例变量声明为数据库表中的变量
public class Revenue
{
private String id;
private Integer revenue;
private String year;
//getters and setters
}
现在,从数据库中获取数据,在DAO内部创建一个方法并编写
public ArrayList<Revenue> getAllRevenueList()
{
try
{
// try-catch exception, if any exception occurs return null
//driver
//connection code
String sql = "SELECT id,revenue,year FROM revenue_table ORDER BY year";
Statement stmt = con.createStatemtnt();
ResultSet rs = stmt.executeQuery(sql);
//now iterate over the result set and create list of objects of class `Revenue`
//create an ArrayList<Revenue>
ArrayList<Revenue> revenueList = new ArrayList<Revenue>();
while(rs.next)
{
//for each row in result set create the object of class Revenue
Revenue r = new Revenue();
r.setId(rs.getString("id"));
r.setRevenue(Integer.parseInt(rs.getString("revenue")));
r.setYear(rs.getString("year"));
revenueList.add(r); //add object to list
}
return revenueList;
}
catch(Exception e)
{
e.printStackTrace();
return null;
}
}
public ArrayList getAllRevenueList()
{
尝试
{
//尝试捕获异常,如果发生任何异常,则返回null
//司机
//连接代码
String sql=“从收入表中选择id、收入、年份按年度排序”;
语句stmt=con.createStatemtnt();
结果集rs=stmt.executeQuery(sql);
//现在迭代结果集并创建“Revenue”类的对象列表`
//创建一个ArrayList
ArrayList revenueList=新ArrayList();
while(rs.next)
{
//为结果集中的每一行创建类Revenue对象
收入r=新收入();
r、 setId(rs.getString(“id”);
r、 setRevenue(Integer.parseInt(rs.getString(“revenue”));
r、 设定年(rs.getString(“年”);
revenueList.add(r);//将对象添加到列表
}
回归复仇者;
}
捕获(例外e)
{
e、 printStackTrace();
返回null;
}
}
Servlet
public JFreeChart getChart()
{
DefaultCategoryDataset数据集=新的DefaultCategoryDataset();
//检索收入数组列表
//在调用方法之前,请确保已初始化revenueDao对象
ArrayList revenueList=revenueDao.getAllRevenueList();
//检查列表不为null和空
if(revenueList!=null&&!revenueList.isEmpty())
{
对于(收入r:收入列表)
{
setValue(r.getRevenue(),r.getYear,r.getId());
}
}
..........
............
..............
}
对数据库或hibernate使用JDBC?@Aniket JDBC。我的SQL。我应该在DAO中创建什么方法?嗨!你的回答很有魅力!我理解你的解释。。非常感谢……)你好!现在我要做。它与上面的条形图不同。servlet中的方法也不同。你能帮我一下吗?我应该为此创建一个新问题吗?提前感谢@是的,发布新问题。告诉我问题链接。嗨,希望你能帮助我,我在这方面是全新的。谢谢!:)@我无法理解你的问题。这很简单。不要介意。如果你有任何其他疑问,请告诉我。
public class Revenue
{
private String id;
private Integer revenue;
private String year;
//getters and setters
}
public ArrayList<Revenue> getAllRevenueList()
{
try
{
// try-catch exception, if any exception occurs return null
//driver
//connection code
String sql = "SELECT id,revenue,year FROM revenue_table ORDER BY year";
Statement stmt = con.createStatemtnt();
ResultSet rs = stmt.executeQuery(sql);
//now iterate over the result set and create list of objects of class `Revenue`
//create an ArrayList<Revenue>
ArrayList<Revenue> revenueList = new ArrayList<Revenue>();
while(rs.next)
{
//for each row in result set create the object of class Revenue
Revenue r = new Revenue();
r.setId(rs.getString("id"));
r.setRevenue(Integer.parseInt(rs.getString("revenue")));
r.setYear(rs.getString("year"));
revenueList.add(r); //add object to list
}
return revenueList;
}
catch(Exception e)
{
e.printStackTrace();
return null;
}
}
public JFreeChart getChart()
{
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
//retrieve the revenue ArrayList
//make sure that you have initialized the revenueDao object before calling method
ArrayList<Revenue> revenueList = revenueDao.getAllRevenueList();
//check list is not null and empty
if(revenueList != null && !revenueList.isEmpty())
{
for(Revenue r : revenueList)
{
dataset.setValue(r.getRevenue(), r.getYear, r.getId());
}
}
..........
............
..............
}