当前位置: 首页 > 知识库问答 >
问题:

在Java中如何使用JDBC从MySQL中检索数学方程?

空英达
2023-03-14

我想从Java的MySQL数据库中检索数学方程,并使用ITextPDF将其写入PDF文件。

我尝试在数据库连接中将字符编码设置为UTF8,然后我从数据库中检索以字节为单位的数据,将其转换为字符串,然后将其添加到我的文档中。生成的pdf文件没有任何数学符号。Java是罪魁祸首还是iTextPDF?

public class MathematicalEquation {
static final String DEST = "D://Zaid/MathemaicalEquations/test101.pdf";
static final String FONT = "D://Zaid/MathematicalEquations/FreeSans.ttf";
public static void main(String[] args) throws SQLException, DocumentException, IOException {
    File file = new File(DEST);
    file.getParentFile().mkdirs();
    FileOutputStream fos = new FileOutputStream(DEST);
    PdfWriter writer = new PdfWriter(fos);
    PdfDocument pdf = new PdfDocument(writer);
    Document document = new Document(pdf);
    Cell cell = new Cell();
    Table table = new Table(new float[] {50,5});

    BaseFont bf = BaseFont.createFont(FONT, BaseFont.IDENTITY_H, BaseFont.EMBEDDED, true);
    Font f = new Font(bf);

    Connection myConn = DriverManager.getConnection("jdbc:mySql://127.0.0.1/MathematicalProblem?useUnicode=yes&characterEncoding=UTF-8", "root", "Mobilen0");
    Statement myStmt = myConn.createStatement();
    ResultSet myRs = null;
    myStmt.executeQuery("SET NAMES 'UTF8'");
    myStmt.executeQuery("SET CHARACTER SET UTF8");

    myRs = myStmt.executeQuery("SELECT * FROM equations");

    byte[] imageBytes=null;
    Blob image1=null;
    ImageData imgData;
    Image image = null;
    Paragraph para = new Paragraph();
    byte[] equation = null;



    while(myRs.next()) {
                equation = myRs.getString("equation").getBytes("UTF-8");
                image1 = myRs.getBlob("image"); 
    }

    if(image1!=null) {
        imageBytes = image1.getBytes(1, (int) image1.length());
        imgData = ImageDataFactory.create(imageBytes);
        image = new Image(imgData);
    }


    String s = Base64.getEncoder().encodeToString(equation);
    String decodedEquation = new String(Base64.getDecoder().decode(s), StandardCharsets.UTF_8);
    para = new Paragraph(String.format("%s%n " , decodedEquation, f));
    cell.add(para).setBorder(Border.NO_BORDER);
    if(image1!=null) {
        cell.add(image.scaleAbsolute(100, 100))
            .setBorder(Border.NO_BORDER);
    }
    table.addCell(cell);
    document.add(table);
    document.close();
    myRs.close();
    myStmt.close();
    myConn.close();
}

}

输出:4 x 25÷5=?

预期输出为:√4 x√25÷5=?

共有1个答案

袁恩
2023-03-14

输出是base64编码的。你需要先解码。

将此decodedEquation添加到pdf

String decodedEquation = new String(Base64.getDecoder().decode(equation), StandardCharsets.UTF_8);
 类似资料:
  • 是否正确?现在,当我尝试从数据库中检索blob数据时,它每次都会更改,为什么?那么如何检索此图像呢?以下是我尝试过的代码: 我没有看到任何图像。为什么?请帮忙。谢谢

  • 我是新来的。我已经成功地使用python将消息发送到IOT中心(D2C)。我们使用的协议是mqtt。我们正在尝试使用java从云(IOT中心)检索数据,但无法找到从云接收消息的正确方法。我的疑问是我们是否可以直接从IOT中心读取消息,或者我们需要将传入消息重定向到事件中心来检索消息。 我还尝试在向云发送数据的同时从java中的iothub读取消息,但得到的错误如下。。(与服务器的连接中断。重新连接

  • 问题内容: 我有以下表格及其关系。我将JSON数据存储在client_services表中。它们是使用MySQL查询来检索JSON值的任何方式,如下所示: 还是可以进一步规范化client_services表? 表: 表: 表: 表: 问题答案: 由于很多人都亲自问过我这个问题,所以我想我会再作一次修改。这是一个具有SELECT,Migration和View Creation的完整SQL的要点,

  • 问题内容: 我们如何从文本字段中检索值?我需要将值转换为进一步处理。我已经在单击按钮时创建了一个文本字段,我需要存储输入到中的值,你能提供一个代码段吗? 问题答案: 参见Java文档中的JTextField 示例代码可以是:

  • 问题内容: 我已经完成了将记录插入数据库的操作,但是我不知道如何检索它。我的代码是: Account.java: MyAccount.java: insert.html: web.xml: 当用户单击“检索”按钮时,如何从数据库检索数据,并以另一HTML格式显示所有记录?请提供有关操作方法的建议。 在我的应用程序中,当用户单击检索按钮时,它正在执行插入操作。但是我想要的是,当用户单击它时,应该转到

  • 问题内容: :我只想显示Mysql表记录的简单ajax代码: Records.php是用于从Mysql提取记录的文件。 在数据库中只有两个字段:“名称”,“地址”。 该代码不起作用。 问题答案: 为了使用Ajax + jQuery检索数据,您应该编写以下代码: 对于mysqli连接,请编写以下代码: 为了显示数据库中的数据,您应该这样编写: