Во время разработки проекта, при выполнении динамического запроса Mybatis, я столкнулся с проблемой: когда MySQL проводит как нечеткий запрос, результаты можно нормально извлекать, входя в английский язык, но результаты, полученные при входе в китайский язык, пусты.
Поскольку его требуется с использованием GET, чтобы гарантировать, что китайский не искажен, китайский язык кодируется один раз после того, как консоль получает параметры запроса.
try {realName = new String (realName.getBytes ("gbk"), "utf-8");} catch (unsupportedEncodingexception исключение) {logger.error («Произошла ошибка realName во время выполнения кодирования UTF-8," + Exception.ToString ();};};Динамическое отображение динамического SQL Mybatis, специфический SQL заключается в следующем:
Во -первых, используйте нечеткий запрос, чтобы получить английский. Начните проект, введите английский «тест», и результаты, полученные путем поиска в соответствии с контентом на английском языке, следующие:
Мы видим, что SQL выполняется нормально. Используя «тест» для получения 2 результатов, содержимым соответствующих полей в базе данных являются тест Zhang San Test02 и Zhang San. Обычно, если мы введем китайский «Чжан», мы также можем запросить эти два данных. Давайте попробуем использовать нечеткий запрос, чтобы получить китайский. Начните проект, введите китайский «Чжан», и результаты поиска следующие:
Мы видим, что результат, полученный здесь, составляет 0 записей, а содержание китайцев в условиях не искажено, что отличается от ожидаемого. Копирование того же оператора SQL в SQLYOG может привести к нормальным результатам.
При использовании SQLServer не было никакой проблемы. Это произошло на этот раз, используя MySQL. Предполагается, что содержимое конфигураций SQLServer и MySQL было различным, когда MyBatis настроил среду источника данных. После тщательного сравнения и онлайн-обзора соответствующего контента я обнаружил, что, когда MySQL ищет китайский язык, мне нужно добавить параметр useUnicode = true & harementencoding = UTF-8 после JDBCurl, чтобы указать формат кодирования.
Полный URL:
jdbc: mysql: //127.0.0.1: 3306/fanyl_web? useUnicode = true & harectrencoding = UTF-8
После изменения JDBCurl MySQL, запустите проект и продолжайте войти в китайский «Чжан». Результаты поиска следующие:
Всего было получено 3 результата. На этом этапе проблема Mybatis не может искать китайский язык при использовании MySQL для выполнения нечеткого запроса, была решена.
Кроме того, несколько общих описаний параметров в MySQL Jdbcurl:
Выше я познакомил с вами. Что мне делать, если я не могу искать результаты при использовании MyBatis для использования нечеткого запроса MySQL? Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!