Listing 1 

<cffunction name="rstoquery" output="false" 
hint="returns a query from a Java ResultSet object">
  <cfargument name="resultset" type="any" required="true">

  <cfset var rs = resultset>
  <cfset var x = false>
  <cfset var col = false>
  <cfset var colnames = "">
  <cfset var tableData = false>
  
  <cfif isobject(resultset) and
  findnocase("resultset",resultset.getClass().getName())>
    <cfset tabledata = resultset.getMetaData()>
    <cfloop index="x" from="1" to="#tableData.getColumnCount()#">
      <cfset colnames =
	  listappend(colnames,tableData.getColumnName(JavaCast("int",x)))>
    </cfloop>
    <cfset rs = querynew(colnames)>

    <cfloop condition="resultset.next()">
      <cfif resultset.getRow()>
        <cfset queryaddrow(rs)>
        <cfset x = rs.recordcount>
        <cfloop index="col" list="#colnames#">
          <cfset rs[col][x] = resultset.getString(JavaCast("string",col))>
        </cfloop>
      </cfif>
    </cfloop>
  </cfif>

  <cfreturn rs>
</cffunction>

Listing 2

<cffunction name="jdbcType" output="false" returntype="string" 
hint="returns the name or number for a given Java JDBC data type">
  <cfargument name="typeid" type="string" required="true">

  <cfset var sqltype = createobject("java","java.sql.Types")>
  <cfset var types = structnew()>

  <cfloop item="x" collection="#sqltype#">
    <cfset types[x] = sqltype[x]>
    <cfset types[sqltype[x]] = x>
  </cfloop>

  <cfreturn types[typeid]>
</cffunction>