"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني استخدام استعلامات SQL IN() بشكل فعال مع Spring's JDBCTemplate؟

كيف يمكنني استخدام استعلامات SQL IN() بشكل فعال مع Spring's JDBCTemplate؟

تم النشر بتاريخ 2024-11-16
تصفح:480

How can I effectively use IN() SQL queries with Spring's JDBCTemplate?

استعلامات SQL الفعالة IN () باستخدام JDBCTemplate لـ Spring

لديك استعلام IN () يجعلك تقوم حاليًا ببناء جملة تحتوي على أسطر متعددة الكود:

StringBuilder jobTypeInClauseBuilder = new StringBuilder();
for(int i = 0; i < jobTypes.length; i  ) {
    Type jobType = jobTypes[i];

    if(i != 0) {
        jobTypeInClauseBuilder.append(',');
    }

    jobTypeInClauseBuilder.append(jobType.convert());
}

أنت تبحث عن طريقة أكثر أناقة تشبه استبدال معلمات البيانات المعدة.

استخدام مصدر معلمة

لتحقيق الأناقة المطلوبة ، يمكنك استخدام مصدر المعلمة:

Set ids = ...;

MapSqlParameterSource parameters = new MapSqlParameterSource();
parameters.addValue("ids", ids);

List foo = getJdbcTemplate().query("SELECT * FROM foo WHERE a IN (:ids)",
     parameters, getRowMapper());

NamedParameterJdbcTemplate

لاحظ أن هذا يعمل فقط إذا قامت getJdbcTemplate() بإرجاع مثيل من النوع NamedParameterJdbcTemplate.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3