解決springmvc+mybatis+mysql中文亂碼問題【轉】

這篇文章主要介紹瞭解決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. 2. 提供高併發JMS消息處理機制
    3. 所有功能模塊化、所有模塊服務化、所有服務原子化的方式,提供可拓展的服務模型,使程序穩定運行,永不宕機
    4. 提供Wink RestWebservice服務,故可作爲獨立服務平臺部署

    框架整合:

    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的博客


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章