# Mapping einer SQL Abfrage in eine Klasse



## Fohnbit (31. Mrz 2020)

Hallo,

ich möchtes das Ergebnis einer SQl Abfrage gleich direkt in eine Klasse mappen. Aber ich erhalte folgenden Fehler:

Fehler beim Konvertieren des Werts 'varchar' in den JDBC-Datentyp 'INTEGER'

Ich hatte den Fehler so verstanden, das er ein "varchar" versucht in der Klasse zu mappen, die dort als int definiert ist.

Leider keine genauer Fehlerangabe. So habe ich alle int auskommentiert, aber erhalte noch immer den selben Fehler.
Die Klasse:

```
public class Product {
    public String sku;
    public String store_view_code;
    public String attribute_set_code;
    public String product_type;
    public String categories;
    public String product_websites;
    public String name;
    public String description;
    public String short_description;
    public float weight;
//    public int product_online;
    public String tax_class_name;
    public String visibility;
    public float price;
    public String url_key;
    public String display_product_options_in;
    public String msrp_display_actual_price_type;
    public String additional_attributes;
    public float qty;
//    public int use_config_min_qty;
//    public int is_qty_decimal;
//    public int allow_backorders;
//    public int use_config_backorders;
//    public int min_cart_qty;
//    public int use_config_min_sale_qty;
//    public int website_id;
    public String configurable_variations;
    public String base_image;
    public String base_image_label;
    public String small_image;
    public String small_image_label;
    public String thumbnail_image;
    public String thumbnail_image_label;
    public String meta_title;

}
```

Das Codesnippel für das mappen:

```
QueryRunner run = new QueryRunner(dataSource);
                ResultSetHandler<List<Product>> h = new BeanListHandler<Product>(Product.class);
                List<Product> product = run.query(sql, h);
                Gson gson = new Gson();
                gson.toJson(product, new FileWriter("products" + ".json"));
```

aber selbst wenn ich alle int und float auskommentiere, erhalte ich den Fehler.

Weiß da jemand woran das liegt?

Danke!


----------



## mihe7 (31. Mrz 2020)

Fohnbit hat gesagt.:


> Fehler beim Konvertieren des Werts 'varchar' in den JDBC-Datentyp 'INTEGER'



Hm... Der Wert 'varchar' ist nicht der Datentyp VARCHAR... Was für einen Mapper verwendest Du denn? Lass Dir mal die SQL-Query ausgeben, wenn das möglich ist.


----------



## Fohnbit (1. Apr 2020)

Guten Morgen!

*org.apache.commons.dbutils* habe ich eingefügt

Sorry, hab nun gesehen das dich "Product" auf eine andere Klasse bezogen hat. Läuft nun.

Die Product Klasse benötigt aber getter/setter ... sonst klappt es nicht


----------



## krgewb (1. Apr 2020)

Fohnbit hat gesagt.:


> Die Product Klasse benötigt aber getter/setter ... sonst klappt es nicht


Wegen dem JSON-Parser?


----------



## Fohnbit (1. Apr 2020)

Nein, sonst klappt das mapping nicht.
Er fügt nur null Werte ein, wenn ich keine getter/setter habe


----------

