在Coldfusion中使用Apache Cassandra

cha*_*ang 4 java coldfusion cassandra cassandra-2.0

我正在尝试在我使用Coldfusion进行编码的项目中使用Apache Cassandra.由于Coldfusion没有Apache Cassandra的驱动程序,反之亦然,我试图使用Cassandra的Java驱动程序.

我几乎是一个Java新手,所以请耐心等待.

我已经设法将必要的.jar文件复制到/ opt/railo/lib /(我正在使用Railo),并使用下面的代码设法使用Coldfusion连接到Cassandra.我需要帮助的是循环查看Cassandra在运行查询时返回的结果.我在下面列出了非常简单的代码:

<cfset MyClusterInit = CreateObject("java", "com.datastax.driver.core.Cluster")>
<cfset MyCluster = MyClusterInit.builder().addContactPoint("127.0.0.1").build()>
<cfset MySession = MyCluster.connect("mytest")>
<cfset GetCustomer = MySession.execute("SELECT * FROM customer")>
<cfdump var="#GetCustomer#">
Run Code Online (Sandbox Code Playgroud)

如何循环返回的结果?cfdump返回Java方法ArrayBackedResultSet $ SinglePage.这不是我可以使用Coldfusion循环的东西.

从"Cassandra和Java入门"帖子中,我看到如下代码:

ResultSet results = session.execute("SELECT * FROM users WHERE lastname='Jones'");
for (Row row : results) {
System.out.format("%s %d\n", row.getString("firstname"), row.getInt("age"));
}
Run Code Online (Sandbox Code Playgroud)

我如何在Coldfusion中复制上述内容?

非常感谢您抽出宝贵时间提供帮助.

cha*_*ang 6

正如上面的Leigh和Mark A Kruger所指出的,使用JDBC驱动程序是连接Coldfusion/Railo中Cassandra的更智能的方法.只需按照以下说明操作:

  1. 通过https://code.google.com/a/apache-extras.org/p/cassandra-jdbc/下载JDBC驱动程序.它适用于最新版本的Cassandra(撰写本文时)

  2. 确保还要下载Cassandra JDBC依赖项

  3. 将jar文件复制到Coldfusion lib目录

  4. 重启Coldfusion/Railo

  5. 创建数据源类型"其他"

  6. 对于Driver Class,输入" org.apache.cassandra.cql.jdbc.CassandraDriver "

  7. 连接字符串应为" jdbc:cassandra:// host1 - host2 - host3:9160/keyspace1?primarydc = DC1&backupdc = DC2&consistency = QUORUM "

  8. 而已!您现在可以像查询任何其他数据库一样查询Cassandra

不仅.我设法让Java驱动程序直接工作,JDBC驱动程序的性能比直接调用Java驱动程序要好得多.我的测试只是一个非常简单的表,有3条记录,使用Java直接连接需要50ms,而使用JDBC驱动程序需要不到5ms.

感谢Leigh和Mark A Kruger提示!