MySQL url 连接参数(MyBatis INSERT 乱码?)
官方文档:
https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-configuration-properties.html
characterEncoding
What character encoding should the driver use when dealing with strings? (defaults is to ‘autodetect’)
Since version: 1.1g
我们在使用
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.18</version>
</dependency>
操作 MySQL insert
语句向数据库中插入数据时经常会出现乱码问题,这是因为 mysql-connector-java
操作数据库时会采用默认编码。
characterEncoding
What character encoding should the driver use when dealing with strings? (defaults is to ‘autodetect’)
Since version: 1.1g
如果我们想使用中文字符,需要自己指定编码。
只需在 MySQL 的连接参数后添加指定编码即可。
以 MyBatis 连接为例。
<property name="url" value="jdbc:mysql://192.168.223.128:3307/mybatis_demo1?characterEncoding=UTF-8"/>
以下是完整配置 Demo。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- mybatis 主配置文件。-->
<configuration>
<!-- 配置环境。-->
<environments default="development">
<!-- 配置 MySQL 的环境。可以配置多个,具体使用哪个以 <environments default="development"> 的选择为准。-->
<environment id="development">
<!-- 配置事务的类型。-->
<transactionManager type="JDBC"/>
<!-- 配置数据源。有 3 种。POOLED, UNPOOLED, JNDI。-->
<dataSource type="POOLED"><!-- MySQL 连接基本参数。-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<!--<property name="url" value="jdbc:mysql://192.168.223.128:3306/mybatis_demo"/>-->
<property name="url" value="jdbc:mysql://192.168.223.128:3307/mybatis_demo1?characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!-- 指定映射配置文件的位置。映射配置文件指的是每个 dao 独立的配置文件。-->
<mappers>
<mapper resource="com/geek/dao/IUserDao.xml"/>
<!-- 如果是用注解,此处应该使用 class 属性指定被注解的 dao 全限定类名。-->
<!--<mapper class="com.geek.dao.IUserDao"/>-->
</mappers>
</configuration>