أثناء تطوير المشروع ، عند إجراء الاستعلام الديناميكي MyBatis ، واجهت مشكلة: عندما تقوم MySQL بإجراء الاستعلام الغامض ، يمكن استرداد النتائج بشكل طبيعي عن طريق دخول اللغة الإنجليزية ، ولكن النتائج التي تم الحصول عليها عن طريق دخول الصينية فارغة.
نظرًا لأنه مطلوب باستخدام GET ، من أجل التأكد من عدم تشويه الصينيين ، يتم ترميز اللغة الصينية مرة واحدة بعد تلقي وحدة التحكم معلمات الطلب.
حاول {RealName = new String (RealName.getBytes ("GBK") ، "UTF-8") ؛} catch (استثناء UnsupportedEncodingException) {logger.error (حدث خطأ في RealName أثناء تنفيذ UTF-8 ، " + استثناء.MyBatis Dynamic SQL Mapping ، SQL محددة كما يلي:
أولاً ، استخدم الاستعلام الغامض لاسترداد اللغة الإنجليزية. ابدأ المشروع ، أدخل "اختبار" اللغة الإنجليزية ، والنتائج التي تم الحصول عليها عن طريق البحث وفقًا للمحتوى الإنجليزي هي كما يلي:
يمكننا أن نرى أن SQL يتم تنفيذها بشكل طبيعي. باستخدام "اختبار" لاسترداد 2 نتائج ، فإن محتويات الحقول المقابلة في قاعدة البيانات هي Zhang SAN Test02 و Zhang SAN. عادة ، إذا دخلنا "Zhang" الصينية ، فيمكننا أيضًا الاستعلام عن هذين البيانات. دعونا نحاول استخدام الاستعلام الغامض لاسترداد الصينية. ابدأ المشروع ، أدخل الصينية "Zhang" ، ونتائج البحث هي كما يلي:
يمكننا أن نرى أن النتيجة التي تم استردادها هنا هي 0 سجلات ، والمحتوى الصيني للظروف غير مشوهة ، وهو ما يختلف عن السجلات المتوقعة. يمكن أن يؤدي نسخ نفس عبارة SQL إلى sqlyog إلى نتائج طبيعية.
لم تكن هناك مشكلة عند استخدام SQLServer. حدث هذا المرة باستخدام MySQL. يشتبه في أن محتويات تكوينات SQLServer و MySQL كانت مختلفة عندما قام MyBatis بتكوين بيئة مصدر البيانات. بعد المقارنة الدقيقة والمراجعة عبر الإنترنت للمحتوى ذي الصلة ، وجدت أنه عندما يبحث MySQL من الصينية ، أحتاج إلى إضافة المعلمة useUnicode = true & directionoding = utf-8 بعد jdbcurl لتحديد تنسيق الترميز.
URL الكامل:
JDBC: mysql: //127.0.0.1: 3306/fanyl_web؟ useUnicode = true & directionoding = utf-8
بعد تعديل JDBCURL من MySQL ، ابدأ المشروع واستمر في إدخال "Zhang" الصيني. نتائج البحث كما يلي:
تم استرداد ما مجموعه 3 نتائج. في هذه المرحلة ، تم حل المشكلة التي لا يمكن لـ MyBatis البحث عن الصينية عند استخدام MySQL لأداء استعلام غامض.
بالإضافة إلى ذلك ، العديد من أوصاف المعلمات الشائعة في JDBCURL من MySQL:
ما سبق هو ما قدمته لك. ما الذي يجب أن أفعله إذا لم أتمكن من البحث عن نتائج عند استخدام MyBatis لاستخدام استعلام MySQL Fuzzy؟ آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر على الجميع في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!