您好,登錄后才能下訂單哦!
這篇文章主要介紹了解決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 |
|
打印出s,此時中文正常顯示,但頁面顯示依舊亂碼。
因此處為ajax請求,遂檢查響應頭信息,查出如下
?
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. 使用阿里巴巴Druid連接池(高效、功能強大、可擴展性好的數據庫連接池、監控數據庫訪問性能、支持Common-Logging、Log4j和JdkLog,監控數據庫訪問)
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項目構建,您可以直接做架構,可以提升自己的學習能力,使您成為真正的架構師。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。