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

时间:2022-06-01 18:19:29
这篇文章主要介绍了解决java中springmvc+mybatis+mysql中文乱码问题的相关资料,需要的朋友可以参考下

近日使用ajax请求springmvc后台查询mysql数据库,页面显示中文出现乱码

最初在mybatis配置如下

<select id="queryContentById" resultType = "java.lang.String" parameterType="String" >
    select text from News where id=#{o}
</select>

其中表News的text字段为blob类型

如此查出的text值在控制台中一直显示乱码。

之后google查找相关resultType=blob相关内容无果,遂将其改为resultType = "java.util.Map" ,且

   

打印出s,此时中文正常显示,但页面显示依旧乱码。

因此处为ajax请求,遂检查响应头信息,查出如下

1
Content-Typetext/html;charset=ISO-8859-1
 

由于数据库中统一为编码为utf-8,故修改响应头信息

@RequestMapping(value = "/queryContentById", method = RequestMethod.GET,produces = "text/plain;charset=UTF-8")
public @ResponseBody String queryContentById(@RequestParam("id") String id) throws SQLException, UnsupportedEncodingException {
  Map map = (Map) ndrService.queryContentById(id);
  byte[] b = (byte[]) map.get("text");
  String s = new String(b,"utf-8");
  return s;
}

我们再来看下另外一个示例的问题

1、SpringMVC的Controller得到的是乱码:
(1)在web.xml加上字符集过滤器:

复制代码代码如下:
 <!-- Spring字符集过滤器 --> <filter>  <filter-name>SpringEncodingFilter</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>SpringEncodingFilter</filter-name>  <url-pattern>/*</url-pattern> </filter-mapping>

(2)在JSP等页面上修改:charset=UTF-8"和pageEncoding="UTF-8"

2、Controller读取到的是正确的中文,但是保存到数据库后变成“??”

(1)修改数据库连接jdbc_url=jdbc:mysql://localhost:3306/mybatistest?useUnicode=yes&characterEncoding=UTF8("&":在xml文件中表示"&")

(2)修改数据库的字符集为utf-8:打开mysql根目录下my.ini(mysql5.6为my-default.ini,要把它copy一份命名为my.ini),在下面具体位置添加(或修改):

复制代码代码如下:
[mysqld]character-set-server=utf8 [client]default-character-set = utf8[mysql]default-character-set = utf8

这样设置在我这边就没什么问题了。

综述:

通常中文乱码问题都是由于字符编码设置不对导致的,我这里无论是数据库还是java文件、jsp文件,都统一成UTF-8。最后问题解决了。

  1. 1. 使用阿里巴巴Druid连接池(高效、功能强大、可扩展性好的数据库连接池、监控数据库访问性能、支持Common-Logging、Log4j和JdkLog,监控数据库访问)
  1. 2. 提供高并发JMS消息处理机制
    3. 所有功能模块化、所有模块服务化、所有服务原子化的方式,提供可拓展的服务模型,使程序稳定运行,永不宕机
    4. 提供Wink Rest、Webservice服务,故可作为独立服务平台部署

    框架整合:

    Springmvc + Mybatis + Shiro(权限) + REST(服务) + WebService(服务) + JMS(消息) + Lucene(搜搜引擎) + Quartz(定时调度) + Bootstrap Html5(支持PC、IOS、Android)

    框架简介:

     

    项目Maven构建,真实大型互联网架构,做到高并发,大数据处理,整个项目使用定制化服务思想,提供模块化、服务化、原子化的方案,将功能模块进行拆分,可以公用到所有的项目中。架构采用分布式部署架构,所有模块进行拆分,使项目做到绝对解耦,稳定压倒一切~~

    持续集成:

    1. 我的待办工作流服务(提供Webservice服务)

    2. 我的待办工作流集成JMS消息服务(支持高并发,可支持成千上万系统集成)

    3. 我的任务提供Rest服务,完成日常的工作管理,通过定时调度平台,动态生成我的任务、循环周期任务、定时邮催提醒完成任务等

    4. 文件上传、多线程下载服务化、发送邮件、短信服务化、部门信息服务化、产品信息服务化、信息发布服务化、我的订阅服务化、我的任务服务化、公共链接、我的收藏服务化等

    系统模块:

     1.  用户管理:

    用户信息管理(添加、删除、修改、用户授权、用户栏目管理、查询等)

    用户组管理(添加、删除、修改、用户组栏目授权,栏目授权、查询、用户组人员添加查询等)

    用户角色管理(添加、删除、修改、用户角色授权、用户角色栏目信息查询设置等)
     2.  文章管理:

    栏目管理:查询无限极栏目树、创建无限极栏目树分类(导航栏目、图片列表栏目、文章列表栏目、文章内容栏目等)、删除、修改栏目信息。

    文章管理:创建、删除、修改文章,多维度文章查询,包括已发布、未发布、所有文章等。文章富文本编辑器、文章多文件上传、文章状态控制等。
    3.  系统设置:

    数据字典管理:支持中、英文信息,支持无限级别分类配置,动态控制是否可用等。

    部门信息管理:支持中、英文无限级别部门信息增加,删除,修改操作,部门列表、树心查询等。

    日志管理:系统日志列表查询、在线查看、在线下载等

    路线管理:集成百度地图API,提供线路查询管理功能

    Druid Monitor(监控):集成阿里巴巴连接池,提供在线连接池监控程序,包括:数据源、SQL监控、URL监控、Session监控、Spring监控等

    网站信息管理:通过系统配置文件进行网站内容操作,包括邮件服务器配置、公司基本信息配置等。

     4.  集成REST服务,可以用作独立服务平台(提供大量实例及测试平台,包括:文件上传下载、邮件短信发送、部门、产品、公共连接、我的收藏、我的任务、信息发布等)

     5.  集成Quartz调度,可以用作定时调度平台(动态配置调度类、调度时间,使程序自动执行某些业务)

     6.  Lucene搜索引擎,可以将文件资料索引化,支持文件内容搜索、关键字搜索、高亮关键字等,使信息在毫秒内提取查询出来

     7.  用户设置功能:包括修改用户信息,修改密码、发送消息,修改个人图片,查看角色、查看用户组,管理员修改角色、用户、用户组等。

     8.  集成Webservice平台,包括jaxws服务、CXF框架,配置双加密的权限认证。使服务集成更加安全。

     9.  Bootstrap html5提供了两套前台开环境,包括CMS和电子商务网站,使您的开发更加的简洁。

    技术点:

    1.  Springmvc + Mybatis集成、SpringSecurity权限控制、Spring AOP事务处理。

    2.   Wink Rest服务、Webservice服务:jaxws、CXF等

    3.  IO 流上传下载文件,多线程操作

    4.  发送邮件,配置邮件服务器,发基于html、纯文本格式的邮件

    5.  MD5加密 (登陆密码校验加密等),用户统一Session、Cookie管理,统一验证码校验等。

    6.  数据库连接池统一配置

    7.  Quartz定时调度任务集成(直接通过配置即可)

    8.  Httpclient破解验证码,登陆联通充值平台

    9.  汉字、英文拆分、可以用作文档关键字搜索等。

    10.  Base64图片处理,支持PC,Android,IOS

    11.  Service Socket 、Client Socket 通信技术(已经做过GPRS数据获取,并用到了项目中)

    12.  提供大量工具类,可以直接使用

    13.  Maven项目构建,您可以直接做架构,可以提升自己的学习能力,使您成为真正的架构师。

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

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

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

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

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

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