文档章节

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

 如何让他和
发布于 2016/10/04 15:34
字数 1980
阅读 868
收藏 2

这篇文章主要介绍了解决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" ,且

?

1

2

byte[] b = (byte[]) map.get("text");

String s = new String(b,"utf-8");

打印出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. 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+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

     

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

     

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

     

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

     

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

     

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

     

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

     Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客
     

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

     

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

     

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

     

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

     

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客
     

     

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客
     

     Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客
     

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

     Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

     Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

© 著作权归作者所有

粉丝 38
博文 72
码字总数 147957
作品 0
深圳
私信 提问
加载中

评论(2)

如何让他和 博主
如何让他和 博主
一次post提交中文造成乱码问题的分析

前提条件 在解决问题之前,web模块中配置了自定义的HttpEncodingFilter和GetHttpServletRequestWrapper,期待能够解决所有服务器上的中文乱码问题,很遗憾,让大家失望了。最后给出web.xml中...

彭苏云
2015/09/18
3.9K
3
关于java发送http请求时中文乱码的一种解决办法

在jsp中常见的乱码解决办法无外乎是关于get和post两种方式的,但只有切实地在实践中使用时才会注意或者说注重到其他方式。例如,在http请求头中传送中文参数,出现乱码,如何解决? 实际场景...

chace0120
2014/03/13
26.9K
0
url 发送请求乱码解决。

来源:http://blog.csdn.net/shiqidide/article/details/6987449 最近遇到的这个问题,在百度找到的 发出来!作者地址是上面的网站 最近又碰到了中文乱码问题,这里我没有把数据库牵扯进来,...

机会到了可是你准备好了吗
2015/11/05
2.4K
1
jsp之中文乱码问题

在eclipse里面我们的jsp页面如果我们写了中文,保存的时候会弹出一个框,让你选择保存方式,之所以这样是因为jsp默认的文件编码是ISO-8859-1字符集中无中文字符。 一个比较好的解决办法是在这...

双月通天
2015/09/03
132
0
linux ftp服务器的搭建和中文字体乱码的解决

本篇文章主要介绍了Centos 下搭建FTP上传下载服务器的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 首先判断你服务器上是否安装了vsftpd 安装vsftpd ...

对的世界
2017/05/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java发送html模板的高逼格邮件

最近做了一个监测k8s服务pod水平伸缩发送邮件的功能(当pod的cpu/内存达到指定阈值后会水平扩展出多个pod、或者指定时间内pod数应扩展到指定数量),一开始写了个格式很low的邮件,像下面这样...

码农实战
9分钟前
4
0
php-fpm配置文件详解/MariaDB密码重置、慢查询日志

来源:https://blog.csdn.net/Powerful_Fy php-fpm主配置文件路径:/usr/local/php-fpm/etc/php-fpm.conf #位于安装php安装目录下的etc/目录中,该文件中最后一行将配置文件指向:include=/...

asnfuy
14分钟前
2
0
川普给埃尔多安和内堪尼亚胡的信

任性 https://twitter.com/netanyahu/status/1186647558401253377 https://edition.cnn.com/2019/10/16/politics/trump-erdogan-letter/index.htm...

Iridium
35分钟前
10
0
golang-mysql-原生

db.go package mainimport ("database/sql""time"_ "github.com/go-sql-driver/mysql")var (db *sql.DBdsn = "root:123456@tcp(127.0.0.1:3306)/test?charset=u......

李琼涛
今天
5
0
编程作业20191021092341

1编写一个程序,把用分钟表示的时间转换成用小时和分钟表示的时 间。使用#define或const创建一个表示60的符号常量或const变量。通过while 循环让用户重复输入值,直到用户输入小于或等于0的值...

1李嘉焘1
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部