All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.commons.dbutils.handlers.AbstractKeyedHandler Maven / Gradle / Ivy

There is a newer version: 5.0.15.jre8
Show newest version
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You 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
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.commons.dbutils.handlers;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.dbutils.ResultSetHandler;

/**
 * 

* ResultSetHandler implementation that returns a Map. * ResultSet rows are converted into objects (Vs) which are then stored * in a Map under the given keys (Ks). *

* * @param the type of keys maintained by the returned map * @param the type of mapped values * @see org.apache.commons.dbutils.ResultSetHandler * @since DbUtils 1.3 */ public abstract class AbstractKeyedHandler implements ResultSetHandler> { /** * Convert each row's columns into a Map and store then * in a Map under ResultSet.getObject(key) key. * @param rs ResultSet to process. * @return A Map, never null. * @throws SQLException if a database access error occurs * @see org.apache.commons.dbutils.ResultSetHandler#handle(java.sql.ResultSet) */ @Override public Map handle(ResultSet rs) throws SQLException { Map result = createMap(); while (rs.next()) { result.put(createKey(rs), createRow(rs)); } return result; } /** * This factory method is called by handle() to create the Map * to store records in. This implementation returns a HashMap * instance. * * @return Map to store records in */ protected Map createMap() { return new HashMap(); } /** * This factory method is called by handle() to retrieve the * key value from the current ResultSet row. * @param rs ResultSet to create a key from * @return K from the configured key column name/index * @throws SQLException if a database access error occurs */ protected abstract K createKey(ResultSet rs) throws SQLException; /** * This factory method is called by handle() to store the * current ResultSet row in some object. * @param rs ResultSet to create a row from * @return V object created from the current row * @throws SQLException if a database access error occurs */ protected abstract V createRow(ResultSet rs) throws SQLException; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy