Database 使用数据访问对象获取JFreeChart数据&;Servlet

Database 使用数据访问对象获取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

我的目标是使用Java生成条形图,因此我搜索了一个可以这样做的库。很快我找到了图书馆,并从这里下载了它

给出的教程是数据是硬代码。以我为例。然而,我试图使用数据访问对象(DAO)和Servlet从数据库中获取JFreeChart数据

演示如何从数据库获取JFreeChart数据。但它不使用DAO

有没有人可以帮助我如何使用DAO和SERVLET获取JFreeChart数据

在DAO中,我应该创建一个返回arraylist、整数或布尔值的方法吗

我希望我的图表像这样。

我的数据库 我的servlet
要在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());    
     }
  }

  ..........
  ............
  ..............
}