使用Java将数据库数据导出为PDF格式 (java 数据库导出pdf)
随着数字化时代的到来,数据的管理和处理变得越来越重要。数据库作为数据管理的重要方式,被广泛使用。而在实际的应用中,我们往往需要将数据库中的数据导出为PDF格式,以便于阅览、打印等操作。在本文中,我们将详细介绍如何。
一、准备工作
在正式开始之前,我们需要先进行一些准备工作:
1. 下载iText库
iText是一个用于创建和操作PDF文件的Java库,可以通过官网(https://itextpdf.com/en/download)下载最新版本。
2. 数据库连接
在使用Java连接数据库之前,需要先设置数据库的连接信息。这里我们以MySQL为例,假设我们已有一个名为“test”的数据库,并以root账号进行连接。
3. 数据库中的数据
当然,将数据库中的数据导出为PDF,前提是有数据。这里我们简单创建一个名为“person”的表,并插入一些数据,示例SQL语句如下:
CREATE TABLE person (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
age INT NOT NULL,
address VARCHAR(50) NOT NULL
);
INSERT INTO person(name, age, address) VALUES (‘Tom’, 18, ‘Beijing’);
INSERT INTO person(name, age, address) VALUES (‘Lucy’, 22, ‘Shangh’);
INSERT INTO person(name, age, address) VALUES (‘Jack’, 25, ‘Guangzhou’);
二、编写Java代码
接下来,我们将开始编写Java代码,将数据库数据导出为PDF格式。为了方便演示,这里我们使用最简单的方法。
1. 导入iText库
将下载好的iText库导入到项目中。
2. 创建PDF文件
我们需要创建一个PDF文件,可以使用iText提供的PdfWriter类。代码如下:
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(“Test.pdf”));
document.open();
3. 创建表格
为了在PDF中显示数据,我们需要创建一个表格。表格的列数与数据表的列数相同,每个单元格显示一条数据。
表格的创建可以使用iText提供的PdfPTable类,示例代码如下:
PdfPTable table = new PdfPTable(3);
接下来,为表格添加标题行和数据行。
3.1 添加标题行
表格的之一行为标题行,需要设置为粗体、居中,示例代码如下:
PdfPCell cell = new PdfPCell(new Paragraph(“Person List”));
cell.setColspan(3);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setPadding(10.0f);
cell.setBackgroundColor(new BaseColor(140, 221, 8));
table.addCell(cell);
3.2 添加数据行
接下来,我们需要从数据库中读取数据,并将每条数据添加到表格中。示例代码如下:
String query = “SELECT * FROM person”;
PreparedStatement pstmt = conn.prepareStatement(query);
ResultSet result = pstmt.executeQuery();
while (result.next()) {
String name = result.getString(“name”);
int age = result.getInt(“age”);
String address = result.getString(“address”);
PdfPCell nameCell = new PdfPCell(new Paragraph(name));
nameCell.setPaddingLeft(10);
nameCell.setBorderWidthRight(0);
nameCell.setBorderWidthBottom(0);
PdfPCell ageCell = new PdfPCell(new Paragraph(String.valueOf(age)));
ageCell.setBorderWidthLeft(0);
ageCell.setBorderWidthRight(0);
ageCell.setBorderWidthBottom(0);
PdfPCell addressCell = new PdfPCell(new Paragraph(address));
addressCell.setPaddingRight(10);
addressCell.setBorderWidthLeft(0);
addressCell.setBorderWidthBottom(0);
table.addCell(nameCell);
table.addCell(ageCell);
table.addCell(addressCell);
}
4. 保存PDF文件
数据表格创建完成后,需要将数据保存到PDF文件中。代码如下:
document.add(table);
document.close();
至此,我们的Java代码编写完成。下面是完整的示例代码:
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
public class ExportPDF {
public static void mn(String[] args) throws DocumentException, FileNotFoundException, SQLException {
// 准备工作:连接数据库
Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/test”, “root”, “”);
// 创建PDF文件
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(“Test.pdf”));
// 打开文档
document.open();
// 创建表格
PdfPTable table = new PdfPTable(3);
// 添加标题行
PdfPCell cell = new PdfPCell(new Paragraph(“Person List”));
cell.setColspan(3);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setPadding(10.0f);
cell.setBackgroundColor(new BaseColor(140, 221, 8));
table.addCell(cell);
// 添加数据行
String query = “SELECT * FROM person”;
PreparedStatement pstmt = conn.prepareStatement(query);
ResultSet result = pstmt.executeQuery();
while (result.next()) {
String name = result.getString(“name”);
int age = result.getInt(“age”);
String address = result.getString(“address”);
PdfPCell nameCell = new PdfPCell(new Paragraph(name));
nameCell.setPaddingLeft(10);
nameCell.setBorderWidthRight(0);
nameCell.setBorderWidthBottom(0);
PdfPCell ageCell = new PdfPCell(new Paragraph(String.valueOf(age)));
ageCell.setBorderWidthLeft(0);
ageCell.setBorderWidthRight(0);
ageCell.setBorderWidthBottom(0);
PdfPCell addressCell = new PdfPCell(new Paragraph(address));
addressCell.setPaddingRight(10);
addressCell.setBorderWidthLeft(0);
addressCell.setBorderWidthBottom(0);
table.addCell(nameCell);
table.addCell(ageCell);
table.addCell(addressCell);
}
// 将表格添加到文档中
document.add(table);
// 关闭文档
document.close();
System.out.println(“PDF文件已生成!”);
}
}
三、测试运行
完成代码编写后,我们需要进行测试运行,验证代码能否达到预期效果。
只需要运行ExportPDF类中的mn方法,代码中会自动从数据库中读取数据,并将其导出为PDF格式的文件,保存到本地磁盘中。
在compileSdkVersion 30,SdkVersion 4.2.0环境中测试运行,结果如下:
PDF文件已生成!
四、小结
在本文中,我们介绍了如何使用Java将数据库中的数据导出为PDF格式。我们需要准备好数据库连接和数据表格。然后,使用iText库创建PDF文件和数据表格,并将数据保存到文件中。
此外,本文仅是一个简单的示例,实际应用中还需要考虑更多的细节和情况。比如,数据表格的格式、筛选条件等等,需要根据实际需求进行具体的设计和调整。
以上就是本文的全部内容,希望能对读者有所启示。