mirth connect:mysql中的javascript插入xml

问题描述 投票:0回答:1

我对 mirth、java 脚本、mysql 很陌生。 我已经在 mirth 中设置了一个通道来读取文本文件并将其转换为 xml。效果很好。 我还尝试使用另一个通道中的数据库编写器将 xml 发送到 mysql 数据库。

这就是 javascript 代码的样子

var dbConn = DatabaseConnectionFactory.createDatabaseConnection('com.mysql.jdbc.Driver','jdbc:mysql://192.168.1.4:3306/mirth','root','');
var result = dbConn.executeUpdate('INSERT INTO jon (xml) values ('1234')');
dbConn.close();

上面的代码在 jon 表中插入一条值为“1234”的记录。但是如何将我通过 source:channel 阅读器读取的 xml 发送到数据库? 我尝试用 ('+messageObject.getEncodedData()+) 或原始数据或转换后的数据替换'1234'。他们都不起作用。我收到以下错误:

ERROR (org.mule.impl.DefaultComponentExceptionStrategy:95) .... Wrapped com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<?xml version="1.0" encoding="UTF-8"?><delimited><row><column1>1234</column1><co' at line 1 (1cf6717f-4818-4b18-acb2-3b93079f2e95#7) .....

我的目的是将整个 xml 写入一个字段,还不需要解析。 谢谢你的病人。 詹莫哈曼迪

javascript mysql xml mirth
1个回答
1
投票

您收到的错误看起来像是一个简单的语法问题。暂时忘记欢乐吧。一般来说,如果您要将值插入到数据库中的字符字段中,则需要将插入的值用单引号括起来

INSERT INTO jon (xml) values ('1234') //single quotes around 1234

当您在 Mirth 中用 javascript 创建查询时,您基本上是在复制在 mysql 中使用的相同查询 - 但您是以编程方式将其构建为字符串。您基本上构建了以下字符串并告诉 javascript 执行它:

"INSERT INTO jon (xml) values ('1234')" //single quotes around 1234

这意味着,如果您有 XML 映射变量,则需要在查询字符串中用单引号将其引起来,以便数据库知道您尝试插入的值。根据您的错误消息,这似乎是问题所在。如果您发布用于插入的实际代码,我可以检查一下。

    var xmlVar = $('XmlVar');  //fill a variable
    var query = "INSERT INTO testMRN (sendingfacility) VALUES ('" + xmlVar + "')";  //notice the quotes around the variable 
    var update= dbConn.executeUpdate(query);
© www.soinside.com 2019 - 2024. All rights reserved.