| career | drupal | java | mac | mysql | perl | scala | uml | unix  

Groovy example source code file (

This example Groovy source code file ( is included in the "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - Groovy tags/keywords

groovyrowresult, groovyruntimeexception, iterator, iterator, jdbc, map, object, resultsetmetadata, resultsetmetadata, resultsetmetadataiterator, resultsetmetadataiterator, resultsetmetadatawrapper, sql, sqlexception, sqlexception, unsupportedoperationexception, util

The Groovy source code

 * Copyright 2003-2009 the original author or authors.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * See the License for the specific language governing permissions and
 * limitations under the License.
package org.codehaus.groovy.runtime;

import groovy.lang.GroovyRuntimeException;
import groovy.sql.GroovyResultSet;
import groovy.sql.GroovyRowResult;
import groovy.sql.ResultSetMetaDataWrapper;

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;

 * This class defines all the new SQL-related groovy methods which enhance
 * the normal JDK SQL classes when inside the Groovy environment.
 * Static methods are used with the first parameter the destination class.
 * @author Paul King
 * @author John Hurst
public class SqlGroovyMethods {

     * Returns a GroovyRowResult given a ResultSet.
     * @param rs a ResultSet
     * @return the resulting GroovyRowResult
     * @throws java.sql.SQLException if a database error occurs
     * @since 1.6.0
    public static GroovyRowResult toRowResult(ResultSet rs) throws SQLException {
        ResultSetMetaData metadata = rs.getMetaData();
        Map<String, Object> lhm = new LinkedHashMap(metadata.getColumnCount(), 1);
        for (int i = 1; i <= metadata.getColumnCount(); i++) {
            lhm.put(metadata.getColumnLabel(i), rs.getObject(i));
        return new GroovyRowResult(lhm);

     * Return a java.sql.Timestamp given a java.util.Date.
     * @param d a date
     * @return the date wrapped as a Timestamp
     * @since 1.6.6
    public static Timestamp toTimestamp(Date d) {
        return new Timestamp(d.getTime());

     * Coerce a GroovyResultSet to a boolean value.
     * A GroovyResultSet is coerced to false if there are no more rows to iterate over,
     * and to true otherwise.
     * @param grs the GroovyResultSet
     * @return the boolean value
     * @since 1.7.0
    public static boolean asBoolean(GroovyResultSet grs) {
        //TODO: check why this asBoolean() method is needed for SqlTest to pass with custom boolean coercion in place
        return true;

     * Return an Iterator given a ResultSetMetaData.
     * Enables Groovy collection method syntactic sugar on ResultSetMetaData.
     * @param resultSetMetaData the ResultSetMetaData to iterate over
     * @return an iterator for the ResultSetMetaData
     * @since 1.7
    public static Iterator<ResultSetMetaDataWrapper> iterator(ResultSetMetaData resultSetMetaData) {
        return new ResultSetMetaDataIterator(resultSetMetaData);

    private static class ResultSetMetaDataIterator implements Iterator<ResultSetMetaDataWrapper> {
        private ResultSetMetaData target;
        private int index = 1;

        public ResultSetMetaDataIterator(ResultSetMetaData target) {
   = target;

        public boolean hasNext() {
            try {
                return index <= target.getColumnCount();
            catch (SQLException ex) {
                throw new GroovyRuntimeException("Unable to obtain column count from ResultSetMetaData", ex);

        public ResultSetMetaDataWrapper next() {
            return new ResultSetMetaDataWrapper(target, index++);

        public void remove() {
            throw new UnsupportedOperationException("Cannot remove from ResultSetMetaData");


Other Groovy examples (source code examples)

Here is a short list of links related to this Groovy source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller


new blog posts


Copyright 1998-2021 Alvin Alexander,
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.