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;
执行以下 SQL 语句来修改数据库 ss_price 的默认字符集为 utf8mb4:
ALTER DATABASE ss_price CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
或者如果建表的时候,使用的utf8
或者修改: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关键词模糊查询内容请搜索编程客栈(www.cppcnsjs.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论