我正在使用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();
}
}
}
任何帮助都将受到赞赏
答案 0 :(得分:1)
由于动态报告基于Java,因此可以使用String
数据类型用于VARCHAR
数据库类型,如@AlexK和@KarthikeyanVaithilingam建议的那样。
CHAR
,VARCHAR
和LONGVARCHAR
可能已映射到String
或char[]
,但String
更适合正常使用。此外,String
类使String
和char[]
之间的转换变得简单:有一种方法可以将String
对象转换为char[]
,也可以使用构造函数将char[]
转换为String
对象。