Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Railo中将Java结果集转换为ColdFusion查询?_Java_Jdbc_Coldfusion_Railo_Cfml - Fatal编程技术网

如何在Railo中将Java结果集转换为ColdFusion查询?

如何在Railo中将Java结果集转换为ColdFusion查询?,java,jdbc,coldfusion,railo,cfml,Java,Jdbc,Coldfusion,Railo,Cfml,以下内容在CFMX 7和CF8中可以正常工作,我假设CF9也可以: <!--- 'conn' is a JDBC connection ---> <cfset stat = conn.createStatement() /> <cfset rs = stat.executeQuery(trim(arguments.sql)) /> <!--- convert this Java resultset to a CF query recordset ---

以下内容在CFMX 7和CF8中可以正常工作,我假设CF9也可以:

<!--- 'conn' is a JDBC connection --->
<cfset stat = conn.createStatement() />
<cfset rs = stat.executeQuery(trim(arguments.sql)) />

<!--- convert this Java resultset to a CF query recordset --->
<cfset queryTable = CreateObject("java", "coldfusion.sql.QueryTable")>
<cfset queryTable.init(rs) >
<cfset query = queryTable.FirstTable() />

这将使用JDBC驱动程序创建一条语句,对其执行一个查询,将其放入java resultset,然后实例化coldfusion.sql.QueryTable,传递java resultset对象,然后调用QueryTable.FirstTable(),它返回一个实际的coldfusion resultset(用于cfloop等)

问题在于Railo的实现有所不同。在Railo中运行此代码会返回以下错误:找不到与coldfusion.sql.QueryTable(org.sqlite.RS)匹配的构造函数

我已经转储了RailoJava对象,在方法中没有看到init()。我错过了一些简单的东西吗?我也很想让它在Railo工作


请注意:我正在与SQLite db进行无DSN连接。我了解如何设置CF数据源。在这一点上,我唯一的问题是将Java结果集转换为Railo查询。

查看Railo源代码,我发现
Railo.runtime.type.QueryImpl
可能适合您的需要。它实现了
railo.runtime.type.Query
,并在其构造函数中接受一个ResultSet,但它似乎没有实现
QueryTable


如果这是正确的类,则需要传入一个ResultSet和一个字符串作为查询名称,因为它没有只接受结果集的构造函数。

这可能是一个愚蠢的问题-但是为什么不使用常规的ColdFusion数据源和
来创建查询结果?请参阅:这可能是因为QueryTable是Railo中的一个接口。所以你不能实例化它。(它是Adobe CF中的一个具体类)。我不确定Railo用于查询的具体类是什么,或者它是否类似于Adobe CF中的QueryTable。但是,如前所述,有没有理由不能使用常规查询?我已经知道如何设置ColdFusion数据源。我知道如何在classes文件夹中加载sqlitejdbc.jar并使其成为ColdFusion中可用的“Other”数据源,还知道如何设置连接字符串以连接到它。我是SqliteCFC项目的开发人员,正在进行SQLiteDBS的无DSN创建。我发现除了查询的实际运行之外,一切都可以在CF或Railo中运行。这就解释了为什么我不使用CF数据源。我需要知道的是Railo是如何从Java结果集构造查询的。Railo开发人员在这里非常活跃——对他们来说,这可能是一个更好的问题。Railo的最终CFML是:这就是开源之美。我查看了Railo的源代码,也了解了它们如何使用cfdocument标记生成PDF(事实证明Railo使用的是pdf4ml)。