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