为什么DynamicReports中没有varchar数据类型

时间:2016-07-13 08:06:20

标签: java jasper-reports dynamic-reports

我正在使用DynamicReports生成PDF,XLS,DOC报告。但我的数据库列在" varchar"数据类型。因此,当我在生成DynamicReports时使用这些字段时,除了varchar之外还有其他所有数据类型。我需要varchar数据类型,因为我的列包含逗号,fullstops,这些数字。那么有没有选择转换或获取数据类型为varchar。

这是我的代码:

public class DynamicReport {
    public static void main(String[] args) {
        Connection connection = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            connection = DriverManager.getConnection(
                        "jdbc:mysql://localhost:3306/marketing_database","root","root");
        } catch (SQLException e) {
            e.printStackTrace();
            return;
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            return;
        }

        JasperReportBuilder report = DynamicReports.report();//a new report
        StyleBuilder plainStyle = stl.style().setFontName("FreeUniversal");

        StyleBuilder boldStyle = stl.style(plainStyle).bold().setBorder(stl.pen1Point());

        report
          .columns(
              Columns.column("Contact Person", "Contact_Person", DataTypes.stringType()))
          .title(//title of the report
                  Templates.createTitleComponent("Fonts"),
              Components.text("FreeUniversal").setStyle(boldStyle)
              .setHorizontalAlignment(HorizontalAlignment.CENTER))
              .pageFooter(Components.pageXofY())//show page number on the page footer
              .setDataSource("SELECT Contact_Person FROM marketing_database.lead", 
                                      connection);

        try {
            report.show();
            report.toPdf(new FileOutputStream("c:/report.pdf"));
        } catch (DRException e) {
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
      }
}

任何帮助都将受到赞赏

1 个答案:

答案 0 :(得分:1)

由于动态报告基于Java,因此可以使用String数据类型用于VARCHAR数据库类型,如@AlexK和@KarthikeyanVaithilingam建议的那样。

  

CHARVARCHARLONGVARCHAR可能已映射到Stringchar[],但String更适合正常使用。此外,String类使Stringchar[]之间的转换变得简单:有一种方法可以将String对象转换为char[],也可以使用构造函数将char[]转换为String对象。

Source