Java 数据库中的值未显示在动态报告中

Java 数据库中的值未显示在动态报告中,java,hql,dynamic-reports,Java,Hql,Dynamic Reports,要求从数据库中获取数据并在动态报告中显示,但当我尝试通过createDataSource()传递列表并调用report.setDataSource(createDataSource())时,它仍然在报告中显示空值,并且能够显示列标题,如jobid、status_value和mobile_no,但是,即使数据库中存在该值,它们对应的值也是空的,请帮助!我走对了吗 java代码 包com.unify.avcv.utils.threads import java.io.File; import jav

要求从数据库中获取数据并在动态报告中显示,但当我尝试通过createDataSource()传递列表并调用report.setDataSource(createDataSource())时,它仍然在报告中显示空值,并且能够显示列标题,如jobid、status_value和mobile_no,但是,即使数据库中存在该值,它们对应的值也是空的,请帮助!我走对了吗

java代码

包com.unify.avcv.utils.threads

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;

import org.hibernate.Session;

import com.google.gson.Gson;
import com.itextpdf.text.pdf.hyphenation.TernaryTree.Iterator;
import com.unify.avcv.hibernate.util.HibernateDBUtil;
import com.unify.avcv.hibernate.model.AvcvJobData;
import net.sf.dynamicreports.jasper.builder.*;
import net.sf.dynamicreports.report.builder.DynamicReports;
import net.sf.dynamicreports.report.builder.column.Columns;
import net.sf.dynamicreports.report.builder.column.TextColumnBuilder;
import net.sf.dynamicreports.report.builder.component.TextFieldBuilder;
import net.sf.dynamicreports.report.builder.style.StyleBuilder;
import net.sf.dynamicreports.report.constant.HorizontalAlignment;
import net.sf.dynamicreports.report.exception.DRException;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.dynamicreports.report.datasource.DRDataSource;


import java.io.File;
import java.math.BigInteger;

import org.w3c.dom.*;


import javax.activation.DataSource;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;


public class DynamicReportsGeneration {




    public static void main(String[] args) throws FileNotFoundException, DRException {
        try
        {
        JasperReportBuilder report=DynamicReports.report();
        StyleBuilder boldstyle=DynamicReports.stl.style().bold();
        StyleBuilder boldstyle_center=DynamicReports.stl.style(boldstyle).setHorizontalAlignment(HorizontalAlignment.CENTER);
        TextFieldBuilder<String> Title=DynamicReports.cmp.text("My First Dynamic Report");
        Title.setStyle(boldstyle_center);
        report.title(Title);

        TextColumnBuilder<String> job_id=Columns.column("jobid", "jobId", DynamicReports.type.stringType());
        TextColumnBuilder<Integer> status_value=Columns.column("status_value", "status", DynamicReports.type.integerType());
        TextColumnBuilder<BigInteger> mobile_value=Columns.column("mobile_no", "mobileNo", DynamicReports.type.bigIntegerType());

        report.columns(job_id,status_value,mobile_value);
        report.setDataSource(createDataSource());
        report.show();
        System.out.println("done!");
    }
        catch(Exception e)
        {
            e.printStackTrace();
        }

    }

    private static JRDataSource createDataSource() {

        DRDataSource dataSource = new DRDataSource("jobid", "status_value", "mobile_no");
        Session session = (Session) HibernateDBUtil.getSessionFactory().openSession();
        String avcvAuditLogQuery = "select jobId,status,mobileNo from AvcvJobData where mobileNo="+8888888811L;
        List<AvcvJobData> avcvAuditLogResult = session.createQuery(avcvAuditLogQuery).list();
        dataSource.add(avcvAuditLogQuery);
        return dataSource;

        }



}
AvcvJobData.hbm.xml


首先,您应该了解:

TextColumnBuilder<BigInteger> mobile_value=Columns.column("mobile_no", "mobileNo", DynamicReports.type.bigIntegerType());
试试这个:

    report.columns(jobId,status_value,mobile_no);
TextColumnBuilder<BigInteger> mobile_value=Columns.column("mobile_no", "mobileNo", DynamicReports.type.bigIntegerType());
    report.columns(job_id,status_value,mobile_value);
    report.columns(jobId,status_value,mobile_no);