Mybatis连接数据库时中文乱码

本文详细介绍了在使用MySQL数据库时遇到的中文乱码问题及其解决方案。通过在URL中添加useUnicode=true&characterEncoding=utf8参数,可以有效解决中文显示乱码的问题,确保数据的正确读取和存储。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

		<dataSource type="POOLED">
                <!--配置连接数据库的四个基本信息-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/day17?useUnicode=true&amp;characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="lxr202319"/>
            </dataSource>

仅这样配置时会在中文乱码
在这里插入图片描述
zaiurl路径配置后添加了useUnicode=true&characterEncoding=utf8参数之后,插入中文就正常了
在这里插入图片描述
(非原创)仅作笔记用,原帖点此

### MyBatis 插入数据库问号乱码解决方案 当遇到MyBatis插入数据至MySQL数据库出现中文字符变成问号的情况,这通常是由字符编码设置不当引起的。为了有效解决问题,需确保整个链路中的字符集配置一致。 #### 数据库服务器端字符集配置 确认MySQL服务器默认字符集不是`latin1`而是支持多字节字符的字符集如`utf8mb4`或至少是`utf8`。可以通过修改MySQL配置文件(`my.cnf` 或 `my.ini`)来实现: ```ini [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci ``` 此更改使得新创建的和列自动采用指定的字符集[^1]。 #### JDBC连接URL参数调整 对于JDBC URL字符串,在Windows平台上应包含如下所示的额外参数以强制客户端和服务端之间使用UTF-8编码传输数据: ```plaintext jdbc:mysql://127.0.0.1:3306/database_name?useUnicode=true&characterEncoding=UTF-8&useSSL=false ``` 注意这里去掉了HTML实体转义符(&)并替换成普通的&( ampersand),因为这是标准URI格式的一部分[^2][^3]。 #### 应用程序内部字符集设定 还需检查应用程序本身的字符编码设置,特别是如果前端提交的数据包含了非ASCII字符,则应在接收这些输入的地方显式指明期望接收到的是UTF-8编码的内容。例如,在Spring Boot项目中可以在application.properties里加入以下配置项: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8 server.servlet.encoding.charset=UTF-8 server.servlet.encoding.enabled=true server.servlet.encoding.force=true ``` 以上措施共同作用可以有效地防止由于不同组件间不匹配而导致的中文乱码现象发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值