Jdbi: ResultSetMapper للقائمة<map object="">&gt; لـ SqlQuery</map>

تم إنشاؤها على ٧ أكتوبر ٢٠١٣  ·  5تعليقات  ·  مصدر: jdbi/jdbi

أهلا،
أحاول إنشاء مخطط لـ SqlQuery عادي بنفس الطريقة مثل handle.select الذي يعود
قائمة سلسلة الخريطة ، الكائن

مثال على الكود:

public interface SomeQueries
{
    @SqlQuery("select * from SOMETABLE")
    @Mapper(MapMappper.class)
    public List<Map<String, Object>> sqlQuery();
}

public class MapMappper implements ResultSetMapper<List<Map<String, Object>>> {

    <strong i="9">@Override</strong>
    public List<Map<String, Object>> map(int index, ResultSet r, StatementContext ctx) throws SQLException {
        System.out.println(r);
        Map<String, Object> obj = new HashMap<String, Object>();
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();

        list.add(obj);
        return list;
    }
}

لكني أحصل على استثناء: غير قادر على الوصول إلى مصمم الخرائط

التعليق الأكثر فائدة

جرب هذا:

public class MapMapper implements ResultSetMapper<Map<String, Object>> {
    <strong i="6">@Override</strong>
    public Map<String, Object> map(int index, ResultSet r, StatementContext ctx) throws SQLException {
        Map<String, Object> map = new HashMap<String, Object>();
        for (int i = 1; i <= r.getMetaData().getColumnCount(); i++) {
            map.put(r.getMetaData().getColumnLabel(), r.getObject(i));
        }
        return map;
    }
}

يجب أن أشير إلى أن مخطط الخرائط الافتراضي المستخدم بواسطة Query متاح بالفعل كواجهة برمجة تطبيقات عامة: org.skife.jdbi.v2.DefaultMapper. يمكنك فقط استخدامه مباشرة إذا كنت تريد.

ال 5 كومينتر

هل تحلها؟ أنا أيضا ألتقي نفس المشكلة.

مرحبًا ، إذا كنت تحصل على استثناء ، فهل يمكنك من فضلك نشر تتبع الاستثناء الدقيق الذي تراه؟ قد يكون مثال التعليمات البرمجية المضمنة ذاتيًا مفيدًا أيضًا إذا كان مزيد من التصحيح ضروريًا.

أعتقد أن المشكلة هي قائمة الخرائط الخاصة بك> بدلا من ذلك
من مجرد خريطة. يعين ResultSetMapper صفًا واحدًا من نتيجة
تعيين. وضعها في قائمة هي مهمة Query ، وليس مخطط الخرائط.

ماثيو

في 2 كانون الثاني (يناير) 2017 ، الساعة 04:23 ، كتب "Алексей Попрядухин" [email protected] :

org.skife.jdbi.v2.MappingRegistry $ 1: لم يتم تسجيل مصمم خرائط لـ
java.util. خريطة
على org.skife.jdbi.v2.MappingRegistry.mapperFor (MappingRegistry.java:83)
على org.skife.jdbi.v2.RegisteredMapper.map (RegisteredMapper.java:35)
على org.skife.jdbi.v2.Query 4.munge (Query.java:183)
في org.skife.jdbi.v2.QueryResultSetMunger.munge (
QueryResultSetMunger.java:41)
في org.skife.jdbi.v2.SQLStatement.internalExecute (SQLStatement.java:1344)
في org.skife.jdbi.v2.Query.fold (Query.java:173)
على org.skife.jdbi.v2.Query.list (Query.java:82)
في org.skife.jdbi.v2.sqlobject.ResultReturnThing $
IterableReturningThing.result (ResultReturnThing.java:253)
في org.skife.jdbi.v2.sqlobject.ResultReturnThing.map (
ResultReturnThing.java:46)
في org.skife.jdbi.v2.sqlobject.QueryHandler.invoke (QueryHandler.java:41)
في org.skife.jdbi.v2.sqlobject.SqlObject.invoke (SqlObject.java:220)
في org.skife.jdbi.v2.sqlobject.SqlObject $ 2.intercept (SqlObject.java:111)
في org.skife.jdbi.v2.sqlobject.CloseInternalDoNotUseThisClass
$$ المُحسِّنByCGLIB $$ 33103a 76. حدد TempChatMessages ()

-
أنت تتلقى هذا لأنك مشترك في هذا الموضوع.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/jdbi/jdbi/issues/81#issuecomment-269960388 ، أو كتم الصوت
الخيط
https://github.com/notifications/unsubscribe-auth/AACW5cJdVzRYKloa4Q-kOIfF6rgavit-ks5rON49gaJpZM4BEn1-
.

جرب هذا:

public class MapMapper implements ResultSetMapper<Map<String, Object>> {
    <strong i="6">@Override</strong>
    public Map<String, Object> map(int index, ResultSet r, StatementContext ctx) throws SQLException {
        Map<String, Object> map = new HashMap<String, Object>();
        for (int i = 1; i <= r.getMetaData().getColumnCount(); i++) {
            map.put(r.getMetaData().getColumnLabel(), r.getObject(i));
        }
        return map;
    }
}

يجب أن أشير إلى أن مخطط الخرائط الافتراضي المستخدم بواسطة Query متاح بالفعل كواجهة برمجة تطبيقات عامة: org.skife.jdbi.v2.DefaultMapper. يمكنك فقط استخدامه مباشرة إذا كنت تريد.

qualidafial ، شكرا جزيلا. هذه هي المساعدة الحقيقية. لقد كافحت مثل أي شيء :) في النهاية إجابتك هي الإجابة الصحيحة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

stevenschlansker picture stevenschlansker  ·  4تعليقات

Romqa picture Romqa  ·  5تعليقات

raderio picture raderio  ·  6تعليقات

jarlah picture jarlah  ·  3تعليقات

keith-miller picture keith-miller  ·  3تعليقات