我使用的是Saxon9.5EE,并在官方文档中给出了使用Saxon的示例。在连接到db的过程中,我们提到了下面的片段
<xsl:stylesheet
xmlns:sql="http://saxon.sf.net/sql"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:saxon="http://saxon.sf.net/"
extension-element-prefixes="saxon sql">
<!-- insert your database details here, or supply them in parameters -->
<xsl:param name="driver" select="'sun.jdbc.odbc.JdbcOdbcDriver'"/>
<xsl:param name="database" select="'jdbc:odbc:test'"/>
<xsl:param name="user"/>
<xsl:param name="password"/>但是我不想在这里提到IP,url密码,我想使用来自jndi数据源的现有连接池。我还想知道是否所有的数据库活动都可以成为XA事务的一部分。
这样我就不能达到预期的效果。对此,我尝试过使用smooks和FTL,使用jndi数据源,速度快3-4倍,但我失去了xslt的高级功能和很大的社区。
如果有人做过类似的事情,请帮忙。
发布于 2016-10-27 14:22:41
Saxon的SQL扩展很大程度上是用户贡献的代码,它是开源的,欢迎您扩展它或将它用作更有雄心的东西的起点。
但是您可能不需要这样做:例如,您当然可以将JDBC连接作为参数传递到样式表(包装为ExternalObject),而不是使用Saxon的sql:connect获得连接。
如果我今天做的是SQL扩展,我不认为我会使用扩展元素,而是使用函数来完成。这比过去更容易了,因为我们现在有了映射和高阶函数,所以我们可以设计更复杂的参数和结果结构。例如,我将让sql:query()返回一个映射数组,每个映射表示结果的一行。
https://stackoverflow.com/questions/40284857
复制相似问题