Example usage for java.sql ResultSet getClass

List of usage examples for java.sql ResultSet getClass

Introduction

In this page you can find the example usage for java.sql ResultSet getClass.

Prototype

@HotSpotIntrinsicCandidate
public final native Class<?> getClass();

Source Link

Document

Returns the runtime class of this Object .

Usage

From source file:br.com.cobranca.util.Util.java

public static <T> T atribuirValores(Class<T> classe, ResultSet rs) throws Exception {

    T obj = classe.newInstance();/*w  w w .  jav  a  2 s .  c  o m*/

    //Percorre lista de colunas
    for (int j = 0; j < rs.getMetaData().getColumnCount(); j++) {

        String nomeColuna = rs.getMetaData().getColumnName(j + 1);

        Field field = obj.getClass().getDeclaredField(nomeColuna);
        field.setAccessible(true);

        String tipoColuna = field.getType().getSimpleName();

        if (tipoColuna.toUpperCase().contains("INT")) {
            tipoColuna = "Int";
        } else {
            tipoColuna = StringPrimeiraLetraMaiuscula(tipoColuna);

        }

        // rs . get + tipo da coluna, passando o nome da coluna como parmetro
        Method met = rs.getClass().getMethod("get" + tipoColuna, String.class);

        if (tipoColuna.equals("Int")) {
            Integer valor = (Integer) met.invoke(rs, nomeColuna);

            met = obj.getClass().getMethod("set" + StringPrimeiraLetraMaiuscula(nomeColuna), Integer.class);
            met.invoke(obj, valor);
        } else if (tipoColuna.equals("String")) {
            String valor = (String) met.invoke(rs, nomeColuna);

            met = obj.getClass().getMethod("set" + StringPrimeiraLetraMaiuscula(nomeColuna), String.class);
            met.invoke(obj, valor);
        } else if (tipoColuna.equals("Double")) {
            Double valor = (Double) met.invoke(rs, nomeColuna);

            met = obj.getClass().getMethod("set" + StringPrimeiraLetraMaiuscula(nomeColuna), Double.class);
            met.invoke(obj, valor);
        } else if (tipoColuna.equals("Float")) {
            Float valor = (Float) met.invoke(rs, nomeColuna);

            met = obj.getClass().getMethod("set" + StringPrimeiraLetraMaiuscula(nomeColuna), Float.class);
            met.invoke(obj, valor);
        } else if (tipoColuna.equals("Long")) {
            Long valor = (Long) met.invoke(rs, nomeColuna);

            met = obj.getClass().getMethod("set" + StringPrimeiraLetraMaiuscula(nomeColuna), Long.class);
            met.invoke(obj, valor);
        } else if (tipoColuna.equals("Boolean")) {
            Boolean valor = (Boolean) met.invoke(rs, nomeColuna);

            met = obj.getClass().getMethod("set" + StringPrimeiraLetraMaiuscula(nomeColuna), Boolean.class);
            met.invoke(obj, valor);
        } else if (tipoColuna.equals("Date")) {
            Date valor = (Date) met.invoke(rs, nomeColuna);

            met = obj.getClass().getMethod("set" + StringPrimeiraLetraMaiuscula(nomeColuna), Date.class);
            met.invoke(obj, valor);
        } else {
            break;
        }
    }

    return obj;

}