java配置mysql连接url中useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai作用

(1)useUnicode=true&characterEncoding=utf8

用来指定编码格式为utf8
serverTimezone=Asia/Shanghai

用来指定区时,springboot 2.0(包括高版本的jdk)如果不配置这个会报时区错误;我这里指定的是亚洲上海的区时

useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai

(2)另外,数据库更改时要设置为以下两种格式:
java配置mysql连接url中useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai作用_第1张图片
(3)前后台交互
java配置mysql连接url中useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai作用_第2张图片

可以看到,之所以会产生乱码,就是因为服务器和客户端沟通的编码不一致造成的,因此解决的办法是:在客户端和服务器之间设置一个统一的编码,之后就按照此编码进行数据的传输和接收。

前端设置:
<%@ page language=“java” contentType=“text/html; charset=UTF-8” pageEncoding=“UTF-8”%>

后端接收post时要在servlet中设置:
request.setCharacterEncoding(“UTF-8”);
/* * 客户端是以UTF-8编码传输数据到服务器端的,所以需要设置服务器端以UTF-8的编码进行接收,否则对于中文数据就会产生乱码 */


添加的作用是:指定字符的编码、解码格式。

例如:mysql数据库用的是gbk编码,而项目数据库用的是utf-8编码。这时候如果添加了useUnicode=true&characterEncoding=UTF-8 ,那么作用有如下两个方面:
1.存数据时:

数据库在存放项目数据的时候会先用UTF-8格式将数据解码成字节码,然后再将解码后的字节码重新使用GBK编码存放到数据库中。

2.取数据时:

在从数据库中取数据的时候,数据库会先将数据库中的数据按GBK格式解码成字节码,然后再将解码后的字节码重新按UTF-8格式编码数据,最后再将数据返回给客户端。

注意:在xml配置文件中配置数据库utl时,要使用&的转义字符也就是&

你可能感兴趣的:(Mysql)