Java JFreeChart和Hibernate中的问题

Java JFreeChart和Hibernate中的问题,java,hibernate,jfreechart,Java,Hibernate,Jfreechart,有人能帮我解决这个问题吗?我试图使用hibernate数据库创建一个图表,但在for循环中出现了一个错误“实际参数和形式参数列表长度不同”。我试图在网上找到这个错误,但没有得到任何解决方案。我决定向这里寻求帮助。任何帮助都将不胜感激 以下是我的实体类的代码: class Student1 { private int rno,marks1,marks2,marks3; private String name; public Student1() { } public Stud

有人能帮我解决这个问题吗?我试图使用hibernate数据库创建一个图表,但在for循环中出现了一个错误“实际参数和形式参数列表长度不同”。我试图在网上找到这个错误,但没有得到任何解决方案。我决定向这里寻求帮助。任何帮助都将不胜感激

以下是我的实体类的代码:

class Student1
{
    private int rno,marks1,marks2,marks3;
    private String name;

public Student1() {  }

public Student1(int rno,String name,int marks1,int marks2,int marks3)
{
    this.rno = rno;
    this.name = name;
    this.marks1 = marks1;
    this.marks2 = marks2;
    this.marks3 = marks3;

 //getter and setters
}
以下是方法图表的代码:

public static void chartsStudent()
{

    DefaultCategoryDataset d1 = new DefaultCategoryDataset();

    Configuration cfg = new Configuration();
    cfg.configure("hibernate.cfg.xml");

    SessionFactory sfact = cfg.buildSessionFactory();
    Session session = null;

    try
    {
        session = sfact.openSession();
        System.out.println("connected");
        session.beginTransaction();

        List<Student1> student1list = new ArrayList<>();
        student1list = session.createQuery("from Student1").list();
        
        for(Student1 b : student1list)
        {
            d1.setValue(b.getName(),b.getMarks1(),b.getMarks2(),b.getMarks3());
        }
        
    }
    catch(Exception e)
    {
        System.out.println(e.getMessage());
    }
    finally
    {
        if (session !=null)
        {
            session.close();
            System.out.println("disconnected");
        }
    }
JFreeChart chart = ChartFactory.createBarChart("Student Preformance",
"Subjects","Marks",d1,PlotOrientation.VERTICAL,true,true,false);
int width = 400;
int height = 400;
}
公共静态无效图表学生()
{
DefaultCategoryDataset d1=新的DefaultCategoryDataset();
Configuration cfg=新配置();
configure(“hibernate.cfg.xml”);
SessionFactory sfact=cfg.buildSessionFactory();
会话=空;
尝试
{
session=sfact.openSession();
System.out.println(“已连接”);
session.beginTransaction();
List student1list=new ArrayList();
student1list=session.createQuery(“来自Student1”).list();
对于(学生1 b:学生1列表)
{
d1.setValue(b.getName(),b.getMarks1(),b.getMarks2(),b.getMarks3());
}
}
捕获(例外e)
{
System.out.println(e.getMessage());
}
最后
{
if(会话!=null)
{
session.close();
系统输出打印项次(“断开”);
}
}
JFreeChart chart=ChartFactory.createBarChart(“学生表现”),
“主题”、“标记”、d1、绘图方向。垂直、正确、正确、错误);
整数宽度=400;
内部高度=400;
}
错误

如前所述,添加或设置值的突变都采用三个参数,而不是四个。每个
都是感兴趣的
编号
,每个
行键
都是一个系列,每个
列键
都是系列中的一个元素。比如说,

public void setValue(double value, Comparable rowKey, Comparable columnKey)
根据您的
学生
班级,每个值都是成绩/分数,每个系列(
行键
)都是学生姓名,每个元素(
列键
)都是作业/测试

d1.setValue(b.getMarks1(), b.getName(), "Test1");
d1.setValue(b.getMarks2(), b.getName(), "Test2");
…

或者,一步从SQL查询构建
CategoryDataset
;这是一个例子;可以找到更多。

根据的api,此函数不接受字符串、int、int、int作为参数。那么我应该使用什么函数来代替设置值,事实上,我在这方面是全新的。@YnjxsjmhThank谢谢你much@trashgodwell我的错误消失了图表也在保存,但它不显示任何原因@trashgod@KomalPatil:我不确定;验证数据是否在数据库和
列表中
;如果你被卡住了,发一个帖子。好的,很好。非常感谢你的帮助:)@trashgood@KomalPatil:很高兴你把它整理好了;如果您想详细说明,请毫不犹豫地编辑您的问题或。