mybatis字段里面含有表情时存入数据库报错

配置文件:

spring.datasource.type=org.apache.commons.dbcp2.BasicDataSource
spring.datasource.dbcp2.connection-init-sqls=SET NAMES utf8mb4

pom

<dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-dbcp2</artifactId>
            <version>2.1.1</version>
            <scope>runtime</scope>
        </dependency>
### MyBatisPlus 报错解决方案 #### 1. 多字段处理器冲突问题 当使用 `MyBatis` 的多字段处理器列表,可能会遇到处理器选择错误的情况。这是因为 `MyBatis` 通过反射获取当前字段类型,并从处理器注册器中查找相应的处理器[^1]。然而,在 Java 中,由于泛型擦除机制的存在,不同类型的 `List` 实际上会被视为相同的类型 (`java.util.List`)。因此,如果多个处理器被注册到同一个键下,则后加载的处理器会覆盖之前已存在的处理器。 为了防止这种情况发生,可以考虑自定义一个更精确匹配逻辑来区分不同的集合类型,或者调整处理器的优先级顺序以确保最合适的处理程序总是最先应用。 ```xml <!-- Maven Dependency --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-spring-boot3-starter</artifactId> <version>3.5.7</version> </dependency> ``` #### 2. Spring Boot 版本兼容性问题 对于某些版本不兼容的问题,比如在整合 `Spring Boot 3.x.x` 和 `MyBatis Plus` 可能出现异常情况。此应该确认所使用的依赖是否是最新的稳定版,并且与当前项目的框架环境相适应。通常情况下,建议采用官方推荐的最佳实践组合方式来进行集成开发工作。 针对上述提到的具体案例,应当更新至最新版本的启动器: ```xml <!-- Corrected Maven Dependency for newer versions of spring boot and mybatis plus integration --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-spring-boot3-starter</artifactId> <version>3.5.7</version> </dependency> ``` 注意移除了旧版本中的 `<artifactId>` 值为 `mybatis-plus-boot-starter` 的条目,替换成适用于新版本的 `mybatis-plus-spring-boot3-starter`[^5]。 #### 3. 存储数据乱码问题 另一个常见的问题是向 MySQL 数据库存入的数据出现了乱码现象。这通常是由于客户端和服务端之间的字符集设置不当造成的。要解决这个问题,可以在数据库连接 URL 参数里指定正确的编码格式以及间区域信息。 具体做法是在应用程序配置文件(如 application.properties 或者 application.yml)内的 JDBC 连接字符串部分加入如下参数: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8 ``` 这里的关键在于设置了三个重要的属性: - `serverTimezone`: 设置服务器所在的区为中国标准间 (CST). - `useUnicode`: 开启 Unicode 支持. - `characterEncoding`: 明确指定了 UTF-8 编码作为默认值. 这些更改可以帮助消除因字符集差异而导致的信息丢失或损坏风险[^4].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值