数据库
首页 > 数据库> > 我需要使用Saxon java工具(命令行)从xsl查询mysql数据库?

我需要使用Saxon java工具(命令行)从xsl查询mysql数据库?

作者:互联网

我想使用java工具SAXON查询数据库

>使用ODBC连接连接到mysql数据库
>查询数据库(可能是信息模式 – 读取模式)
>将结果导出到xml

这是撒克逊人的许可功能(例如saxon9ee)吗?
如果是,是否有任何其他开源选项可以实现相同级别的功能?
我已经下载了saxon9ee.jar saxon9he.jar并且玩了一下.

到目前为止我做了什么:

XSLT:connect.xslt

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  exclude-result-prefixes="#all"
  xmlns:sql="http://saxon.sf.net/sql"
  extension-element-prefixes="sql"
  version="2.0">

    <xsl:output method="xml" encoding="UTF-8" indent="yes"/>

    <xsl:param name="driver" select="'com.mysql.jdbc.Driver'"/>
    <xsl:param name="database" select="'jdbc:mysql://localhost/databaename'"/>
    <xsl:param name="user" select="'usr'"/>
    <xsl:param name="password" select="'pwd'"/>

    <xsl:template match="//databaseObjects">
            <xsl:message>Connecting to database...</xsl:message>

            <!-- The "connection" variable establishes JDBC connection by selecting as its value the SQL connection to the database.!-->

           <xsl:variable name="connection" as="java:java.lang.Object" xmlns:java="http://saxon.sf.net/java-type">
                <sql:connect driver="{$driver}" database="{$database}" user="{$user}" password="{$password}">

                   <!-- Used primarily for debugging, if, 
                   for whatever reason, the credentials or something incorrect is passed in the connect statement, 
                   the process will terminate with the following message -->
                    <xsl:fallback>
                        <xsl:message terminate="yes">Connection to MySQL failed.</xsl:message>
                    </xsl:fallback>
                   </sql:connect>
            </xsl:variable>


     <sql:close connection="$connection"/>
 </xsl:template>
</xsl:stylesheet>

XML:objects.xml

(粗略的想法 )

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<databaseObjects>
    <object type="triggers"/>
    <object type="functions"/>
    <object type="procedures"/>
    <object type="views"/>
    <object type="events"/>
</databaseObjects>

命令:

java -jar ~/saxon/saxon9he.jar   objects.xml connect.xslt 

输出:

未找到许可证文件 – 禁用可授权功能的运行
连接数据库……
connect.xslt的第17行出错:
  XTDE1450:未知的扩展指令
  在内置模板规则中
转换失败:报告了运行时错误

任何形式的帮助都很明显,谢谢

解决方法:

使用以下过程:

>安装MySQL Connector / J(MySQL的官方JDBC驱动程序)
>安装Apache Ant
>创建/修改Ant任务以:

>连接到MySQL
>运行查询
>获取XML输出
>通过Saxon处理XML

参考

> JDBC Basics
> Ant SQL Task
> Ant XSLT Task

标签:java,mysql,xslt,saxon,jdbc-odbc
来源: https://codeday.me/bug/20190709/1411591.html