问题
写了个增加接口,写一条数据到数据库。
request和response都是json格式,从前端传过来的参数,是中文,我自己调接口,debug参数也是中文,而且什么过滤器
<!-- 过滤器utf-8 ,过滤从前端页面传过来的参数,设定为utf8--> <!--<filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEnCoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>-->
数据库的编码格式
建的表的编码格式
连接数据库:
jdbc_url=jdbc:mysql://localhost:3306/bbxt?useUnicode=true&characterEncoding=utf8 jdbc_user=root jdbc_password=root
还有用java代码设置编码格式,反正统统都是正常的,但是添加到数据库都是????????
我的数据库版本是:
解决办法
后来才发现,原来问题是出在连接数据库的地方,改了一个地方:
jdbc_url=jdbc:mysql://localhost:3306/bbxt?useSSL=false&serverTimezone=UTC&useAffectedRows=true&useUnicode=true&characterEncoding=utf8&allowMultiQueries=true jdbc_user=root jdbc_password=root
就是这个url,从数据库名之后,加了一串很长的东东。分别都是啥意思呢?
来了。。。
useSSL=false 和服务器进行通信的时候使用SSL证书,默认为假。
serverTimezone=UTC 覆盖时区的检测/映射。当服务器的时区为映射到Java时区时使用。
useAffectedRows=true 是否用受影响的行数替代查找到的行数来返回数据,默认 false
useUnicode=true 使用Unicode编码格式
characterEncoding=utf8 设置编码格式为utf8
allowMultiQueries=true 批量更新 解决传的值取不到问题。