springmvc+mybatis+mysql 数据库插入中文是乱码

java web项目,前台页面的表单数据,插入到数据库时,结果出现乱码”???“的问题,断断续续折腾了一天时间,废话不说,步骤如下:

一:在web.xml中配置:编码格式拦截器

  

<!-- 编码格式拦截器 -->
  <filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <async-supported>true</async-supported>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

 

   这样可以确保,页面的数据传入到controller不会乱码;如果还是乱码,就应该考虑数据库层面的问题了

二:检查数据库方面的配置:

  1.确保数据库的连接url中设定了utf8:  

  url:jdbc:mysql://localhost:3306/blog-qwc?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true

  2.确保创建的数据库是否配置支持中文,如图:

  

    数据库属性支持:utf8 -- UTF-8 Unicode

    数据库排序规则:utf8_general_ci

  3.修改数据库连接下的表blog的编码:

    alter table blog default character set utf8;

  4.修改表blog中每一个字段的编码:

    // 将该表中的每一列的字符集都改为utf-8

  alter table blog change title title varchar(100) character set utf8;
  alter table blog change author author varchar(100) character set utf8;
  alter table blog change md md varchar(500) character set utf8;
  alter table blog change html html varchar(500) character set utf8;

  注:alter table blog change html html varchar(500) character set utf8;  字段html要写两遍,没有毛病

  5.问题还未解决的话,问题应该在数据库连接的url本身了:

    修改db.properties文件中的url:

   url:jdbc:mysql://localhost:3306/blog-qwc?useUnicode=true&amp;characterEncoding=UTF-8;zeroDateTimeBehavior=convertToNull;allowMultiQueries=true

    修改为:  

   url:jdbc:mysql://localhost:3306/blog-qwc?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true

     修改内容:&amp ==》 &

  6.如果还是不行,删除数据库连接,再来一遍

    这也是没办法的办法了

原文地址:https://www.cnblogs.com/quan-coder/p/8486917.html

时间: 2024-07-29 17:43:41

springmvc+mybatis+mysql 数据库插入中文是乱码的相关文章

MySQL数据库插入中文时出现Incorrect string value: &#39;\xE6\x97\xB7\xE5\x85\xA8&#39; for column &#39;sz_name&#39; at row 1

今天在开发时候出现了这个问题 Incorrect string value: '\xE6\x97\xB7\xE5\x85\xA8' for column 'sz_name' at row 1 场景,往MySQL数据库的表中插入中文参数,抛出了这个异常 我用sqlyog执行该段代码时候发现只是出现警告,并没有出现error,但是在代码里面执行抛出了异常,说明管理工具sqlyog对有些约定不是那么严格,而代码中就会报错.提醒自己,以后写sql时候不能忽略管理工具中出现的警告. 解决方案: 在用sql

mybatis连接mysql数据库插入中文乱码

对于mysql数据库的乱码问题,有两中情况: 1. mysql数据库编码问题(建库时设定). 2. 连接mysql数据库的url编码设置问题. 对于第一个问题,目前个人发现只能通过重新建库解决,建库的时候,选择UTF-8字符集.我试过修改现有数据库字符集为UFT -8,但是根本不起作用,插入的中文仍然乱码(中文显示成:???).重建库时选择字符集为UTF-8之后,中文正常显示了. 对于第二个问题,是这样 的情况:我建库时设置了数据库默认字符集为UTF-8,通过mysql workbench直接插

向MySQL数据库插入数据出现乱码的情况分析

(1)第一种情况在新建数据库时 (2)第二种情况就是,IDE环境里面配置编码设置为UTF-8 (3)第三种情况就是连接数据库时,没有设置编码.这个是最常规的.这个看起来很容易解决,但是需要注意MySQL版本的问题,比如说5.6版本链接URL设置编码的尾缀可能就是: ?useOldAliasMetadataBehavior=true&useUnicode=true&CharsetEncode=utf8&useSSL=false:而之前的版本是: ?useUnicode=true&am

关于建立MySQL数据库,中文出现乱码问题

MySQL的ini文件中的默认编码设置utf-8不用改 loose-default-character-set = utf-8 注意:需要改动部分 1.如图所示 建立schema时改变字符编码 改变为utf-8 建表时改变为utf-8 这样就ok了注意 jsp代码也需要为utf-8

数据库插入中文时乱码处理

主要需要注意一下两点: 1.web.xml中需要设置过滤器,如下: <filter>    <filter-name>SpringEncodingFilter</filter-name>    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>    <init-param>      <param-name>

解决springmvc+mybatis+mysql中文乱码问题【转】

这篇文章主要介绍了解决java中springmvc+mybatis+mysql中文乱码问题的相关资料,需要的朋友可以参考下 近日使用ajax请求springmvc后台查询mysql数据库,页面显示中文出现乱码 最初在mybatis配置如下 <select id="queryContentById" resultType = "java.lang.String" parameterType="String" >     select t

MySQL 插入中文不乱码的5种方法

MySQL 插入中文不乱码的5种方法: 方法一: 登录MySQL,先做 set names latin1 ,然后在更新语句或者执行SQL语句 mysql> set names latin1; mysql> source  test.sql; 方法二: 在SQL文件中指定set names latin1;然后登录MySQL,执行相应文件    [[email protected] ~]# cat test.sql  set names latin1; insert ***************

EF 连接MySQL 数据库 ?保存中文数据后乱码问题

EF 连接MySQL 数据库  保存中文数据后乱码问题 采用Code First 生成的数据库,MySQL数据库中,生成的表的编码格式为***** 发现这个问题后,全部手动改成UTF8(图是另一个表的图),否则插入的数据,就会全部变成乱码 修改后可以正常插入数据(注意!!这里是直接用SQL 代码插入的数据) 之后用代码界面保存数据,如图 但数据中却变成乱码: 修改方法: 在连接MySQL的连接字符串中,加入配置文件信息:Character Set=utf8  来自为知笔记(Wiz)

在使用xutils时post请求传递中文到服务端Mysql数据库出现中文乱码。

            在使用xutils时post请求传递中文到服务端Mysql数据库出现中文乱码. 这个问题困惑了我很久,也走了很多弯路.经过不断的探究终于找到了问题的解决方案. 第一:查看自己的mysql的编码.cmd->mysql –uroot –p -->输入自己的mysql的密码->输入 SHOWVARIABLES LIKE 'character%';(如果装mysql时默认安装的话,会出现很多latin1,而不是我下面的全部utf-8,这是因为mysql默认的编码是lati