`

spring+hibernate+struts2应用mysql数据库乱码问题

阅读更多

在spring配置文件里url末尾添加
?characterEncoding=gbk,没有变化。
在struts配置文件里写
<constant name="struts.i18n.encoding" value="UTF-8" />
还是乱码。
最后发现jsp页面里没改过来。
改为<%@ page language="java" pageEncoding="UTF-8"%>
不再乱码,而且去掉spring里写的那一句,也没乱码。
补充:spring中应该用转义字符才行。
<property name="url"
            value="jdbc:mysql://localhost/mysql?useUnicode=true&amp;characterEncoding=gbk"/>
数据库默认latin1,数据库建表默认utf8,连接使用gbk,中文不再乱码。
---相关资料-----------------------------------
       今天用spring+hibernate+struts2写了一个简单的示例程序,使用spring来管理hibernate处理数据,整合了struts2

,用了很长时间的webwork,使用struts2也还算是顺手,显示测试数据很顺利,当开始测试录入数据功能时,录入汉字发生了

问题,录入的汉字全部成了乱码。

     最开始认为是在tomcat中中文传输出现了问题,加入了中文过滤器,但问题没有解决,忽然想到了在struts2的属性文件

中已经设置了编码为gbk:
struts.properties
struts.i18n.encoding=GBK  
struts.objectFactory=spring   
应该不是在传输过程出的问题,在后台输入传入Action和Dao的数据,也全部能正常显示。
然后怀疑是mysql的设置问题,查找设置mysql的数据库编码设置方法,在设置后仍没有解决问题。
直接在mysql中执行Insert into user ('nam') values('汉字'),mysql执行后数据显示正常,说明数据库的编码也正确。
郁闷了,到底问题处在哪里?在执行hibernateTemplate的save()方法之前,没有出现中文乱码问题,在数据库这方面也测试

没有中文乱码问题,只有在hibernate持久化层这里的问题了。
查找持久化层传输数据到数据库服务器出现乱码的问题,终于找到了问题:
hibernate持久化层在传输过程中未设置编码格式,这样在传输数据到数据库服务器后已经是乱码了,在oracle和sqlserver里

没有出现传输乱码问题,所以没有想到会使这里的问题。
修改spring中关于数据源的配置参数:
数据库链接方式:

   jdbc:mysql://localhost:3306/springexample?characterEncoding=utf-8
 
在执行数据录入后,终于中文显示正常了。
在应用hibernate管理mysql数据库是不仅要注意web服务器和数据库的编码问题,同样要注意持久化层数据传输的编码问题。

分享到:
评论

相关推荐

    Struts2+Spring2+Hibernate3整合的例子.rar

    总的来说,"Struts2+Spring2+Hibernate3整合的例子"是一个完整的Java Web开发示例,它展示了如何有效地组合这三个框架,实现MVC模式,解决中文乱码问题,并且通过Spring的管理,增强了代码的可维护性和可测试性。...

    网上书店系统(Struts+Hibernate)(Java EE项目案例)

    如果上面5步都没问题,你就不存在中文乱码问题。 ====================================================== 数据库使用的是MySQL,其版本为5.0.45 版本。 数据库的用户名及密码均为root。 使用的时候,请参考附件...

    SSH+mysql开发字符集问题

    本文将详细介绍如何在MySQL数据库及SSH框架中正确设置字符集,以解决中文字符乱码问题。 #### 二、数据库层面的字符集配置 在MySQL中,字符集的设置非常关键。不同的字符集会影响数据的存储和显示。下面将详细介绍...

    手把手练习SSH实例

    SSH(Spring + Struts + Hibernate)是一个经典的Java企业级应用开发框架组合,它结合了Spring的依赖注入(DI)和面向切面编程(AOP),Struts的MVC设计模式,以及Hibernate的对象关系映射(ORM)工具。在这个实例中...

    s2shmysql乱码问题

    在使用Struts2+Spring+Hibernate(简称S2SH)框架结合MySQL数据库进行Web应用开发的过程中,经常会出现字符编码不一致导致的乱码问题。这类问题不仅影响用户体验,还可能导致数据处理错误。本文将详细介绍S2SH+MySQL...

    ssh(structs,spring,hibernate)框架中的上传下载

     以上是Spring+Hibernate将文件二进制数据持久化到数据库的解决方案,而Struts通过将表单中file类型的组件映射为ActionForm中类型为org.apache.struts.upload. FormFile的属性来获取表单提交的文件数据。  工程...

    sshz中文乱码解决方法

    对于基于SSH(Spring+Struts2+Hibernate)框架的Web应用来说,解决中文乱码通常需要从多个层面入手。 ##### 2.1 配置Struts2的国际化编码 可以在`struts.xml`文件中添加如下配置来设置应用默认使用的编码格式: `...

    《MyEclipse 6 Java 开发中文教程》前10章

    第一章 安装配置开发环境 18 1.1系统需求 18 1.2 JDK 的下载,安装和配置(可...10.7.2 MyEclipse生成的Spring+Hibernate无法保存数据问题的解决方法2 - 用 CGLIB 来实现事务管理 258 10.7.3 Spring相关的参考资料 261

    JAVA开发-个人简历模板.docx

    - **通用电子商务平台**:求职者运用Struts2+Hibernate+Spring+JavaScript+JSP+AJAX实现了完整的网上购物系统,包括用户登录注册、商品浏览、购物车管理、订单生成等功能。在这个过程中,他锻炼了异常处理和团队...

    Java Web应用详解.张丽(带详细书签).pdf

    11.3 Struts 开发中的中文乱码问题 11.4 Action 数据获取与传递 11.5 Struts 表单验证 第12章 标签库及其应用 12.1 Struts标签库基础知识 12.2 Struts标签库应用实例 12.3 JSTL基础知识 12.4 EL表达式基础...

    myeclipse项目导入流程

    5. **模块开发参考**:虽然文件中提到可以参看sample模块进行开发,但强调了并不一定局限于SSH(Struts+Spring+Hibernate)框架组合,只要使用Struts2框架即可。这意味着开发者可以根据项目需求灵活选择其他技术栈或...

    ssh多对多基础框架搭建

    SSH(Struts + Spring + Hibernate)是Java Web开发中非常流行的轻量级框架组合,它结合了Struts2的MVC架构模式、Spring的依赖注入与面向切面编程特性以及Hibernate的对象关系映射能力。本篇详细介绍了如何构建SSH多...

    JAVA自学之路

    经常的进行知识难点的查询,如果一个问题牵扯的面比较广,就干脆到网上搜索一些相关的专题,比如“java 乱码 mysql” “oracle 创建用户”等等,如果有必要,不要犯懒,勤动手写一些小小的测试程序,来弄明白知识点...

Global site tag (gtag.js) - Google Analytics