开发者

SpringBoot整合Mybatis-plus关键词模糊查询结果为空

目录
  • 现象
  • 原因

现象

SpringBoot整合MyBATis-plus使用关键词模糊查询的时候,数据库中有数据,但是无法查找出来。

SpringBoot整合Mybatis-plus关键词模糊查询结果为空

SpringBoot整合Mybatis-plus关键词模糊查询结果为空

原因

其实不是Mybatis-plus的锅,而是字符串解析的原因。由于查询的字符串是中文,而mysql和SpringBoot项目在配置的时候,规则没有统一起来。

CREATE TABLE `product_info` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `file_name` varchar(255)php NOT NULL,
  `product_name` varchar(255) DEFAULT NULL,
  `model` varchar(100) DEFAULT NULL,
  `unit_price` varchar(50) DEFAULT NULL,
  `manufacturer` varchar(255) DEFAULT NULL,
  `contact_person` varchar(100) DEFAULT NULL,
  `phone` varchar(100) DEFAULT NULL,
  `purchase_time编程客栈` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=110 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT;

虽然建表的时候设置了 utf8mb4

然而,数据库的默认字符集仍然是 latin1。这可能会导致新创建的表继承数据库的默认字符集,而不是你在创建表时指定的字符集。

SHOW CREATE DATABASE ss_price;

SpringBoot整合Mybatis-plus关键词模糊查询结果为空

执行以下 SQL 语句来修改数据库 ss_price 的默认字符集为 utf8mb4:

ALTER DATABASE ss_price CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

SpringBoot整合Mybatis-plus关键词模糊查询结果为空

或者如果建表的时候,使用的utf8

SpringBoot整合Mybatis-plus关键词模糊查询结果为空

js

 或者修改:yml文件中的URL部分,保持前后配置统一

url: jdbc:mysql://localhost:3306/ss_price?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC

spring:
  application:
    name: qr_price
  datasource: # mybatis-plupythons DataSource Config
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/ss_price?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
    username: root
    password: XXXXX
  servlet:
    multipart:
      max-file-size: 100MB
      max-request-size: 500MB

解决结果: 

SpringBoot整合Mybatis-plus关键词模糊查询结果为空

到此这篇关于SpringBoot整合Mybatis-plus关键词模糊查询结果为空的文章就介绍到这了,更多相关SpringBoot Mybatis-plus关键词模糊查询内容请搜索编程客栈(www.cppcnsjs.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)! 

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新开发

开发排行榜