小结一下Hibernate下持久化时候遇到的乱码问题解决方案:
1:确保在 hibernate.connection_url 中加入了useUnicode=true 和 characterEncoding=utf-8,这样的url看起来类似于:jdbc:mysql://localhost/my_db?useUnicode=true&characterEncoding=utf-8;
这种写法在properties中有效,如果直接写到xml中需要将&符转成&。于是URL变成了:
jdbc:mysql://localhost/my_db?useUnicode=true&characterEncoding=utf-8
2:使用spring 的字符过滤器。在web.xml中加入:
<filter>
<filter-name>encodingFilter</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>
3:确保所有文件都是UTF-8编码的:
Eclipse中Project->Properties->Resource->Text file encoding 改为 UTF-8;Dreamweaver->编辑->首选参数->默认编码改为UTF-8,此处默认文档类型(DTD)也最好改为XHTML 1.0 Transitional;其他文本编辑器也是,这里不再赘述。另外,在webpage中加入meta标签:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
让浏览器强制显示UTF-8编码。
4:数据库字符集当然也如是了,不过因库而异。
在下不是专家,讲的不深,不过大致可以解决些许初级问题。
分享到:
相关推荐
在Java开发中,Hibernate作为一种流行的ORM(Object Relational Mapping)框架,被广泛应用于持久化层,它能够简化对象和关系型数据库之间的映射。然而,在实际应用过程中,尤其是在涉及到中文等多字节字符的情况下...
接着,`Hibernate`作为持久化框架,在与数据库交互时,如果数据库表字段的字符集和应用程序的编码不一致,也会导致乱码。确保数据库(如MySQL)的字符集配置为`utf8`或`utf8mb4`,并确保Hibernate连接URL中包含`...
当Java应用程序中的持久化类包含中文字符串,并通过Hibernate映射到MySQL数据库时,如果数据库的字符集与应用程序使用的字符集不一致,就可能导致乱码现象。通常,Windows系统的默认本地字符集为GBK或GB2312,而...
朋友们,说到hibernate持久化数据 你还一头雾水。那你不要担心,下载这个例子,直到弄懂它, 从此,你就会用hibernate进行基本操作了。并且程序中不再有sql语句,实现了很好的封装. 里面还有个文档: 讲解hibernate...
在Java Web开发中,Struts、Hibernate和Spring的整合是一个常见的技术栈,称为SSH框架。...通过这些步骤,开发者可以构建一个完整的Java Web应用程序,实现MVC架构,有效地管理数据持久化和业务逻辑。
默认情况下,Hibernate Tools使用一套预定义的模板来生成Java实体类、持久化映射文件(.hbm.xml)和其他相关代码。这些模板通常用Velocity模板语言(VTL)编写,允许用户根据项目需求进行定制。要修改模板,你可以...
2. **持久化机制**:Hibernate提供了一套完整的对象持久化机制,包括缓存、事务管理、以及对实体对象的生命周期管理等,大大简化了Java应用程序与数据库之间的交互过程。 3. **懒加载和级联操作**:Hibernate支持懒...
在Action中处理用户提交的数据,确保数据在持久化到数据库时不会出现乱码。 7. **测试数据库操作**: - 运行项目,输入中文数据并提交,检查控制台输出和数据库中保存的数据是否正确。 总结:解决中文乱码问题...
5. **实体管理**:讲解如何定义Java实体类,使用@Entity、@Table、@Id等注解,以及如何通过Hibernate API进行持久化操作。 6. **查询语言(HQL)**:Hibernate提供了一种面向对象的查询语言,类似于SQL,可以方便地...
在SSH整合中,Hibernate负责数据持久化,通过SessionFactory创建Session,进而对数据库进行CRUD操作。此实例中,Hibernate配置了对中文字符集的支持,解决了中文数据存储和查询时的乱码问题。 4. **Ajax**:AJAX...
1. **持久化文件信息**:为了实现动态下载,可能需要将文件信息(如文件名、上传时间、描述等)存入数据库。这可以通过Hibernate完成。创建对应的实体类,映射到数据库表,然后在Action中使用Hibernate的Session进行...
在这个实例中,我们将使用Hibernate来处理数据持久化。 - **Hibernate 配置**: - 创建`hibernate.cfg.xml`文件,配置数据库连接信息。 - 创建实体类`User`,并定义其与数据库表的映射关系。 - 在`LoginService`...
集成这三个框架后,你可以享受到它们各自的优势:Struts处理用户交互,Spring管理业务逻辑和依赖,Hibernate处理持久化操作。这样的架构提高了代码的模块化,降低了组件间的耦合度,同时也方便了测试和维护。
第十二章 使用Hibernate快速实现持久层处理 12.1 Hibernate介绍 12.1.1 Hibernate简介 12.1.2 下载Hibernate 12.1.3 配置Hibernate 12.2 Hibernate的核心 12.2.1 Configuration(配置Connection) 12.2.2 ...
3. **Hibernate**:Hibernate是一个开放源码的对象关系映射(ORM)框架,它为Java应用程序提供了对象持久化的解决方案,可以将POJOs(Plain Old Java Objects)映射到数据库表,从而减少了数据访问层的代码量。...
Hibernate自动处理了对象的持久化,包括数据的检索、创建、更新和删除,极大地简化了数据库操作。通过配置映射文件,可以定义Java类与数据库表之间的对应关系,使得数据库操作更加便捷和灵活。 **Spring** 是一个...
在SSH整合中,Struts2负责视图和控制器的交互,Hibernate负责数据持久化,Spring则负责整个应用的管理和协调,共同构建出高效、灵活的Java Web应用。通过熟练掌握这些知识点,开发者可以构建出高质量的、易于维护的...
综上所述,SSH框架通过集成Struts2、Hibernate和Spring,提供了一套强大的企业级应用开发解决方案,涵盖了从视图层、控制层到持久化层的全方位支持。通过合理的配置和规范的编码实践,开发者可以构建出高效、可维护...
第十二章 使用Hibernate快速实现持久层处理 12.1 Hibernate介绍 12.1.1 Hibernate简介 12.1.2 下载Hibernate 12.1.3 配置Hibernate 12.2 Hibernate的核心 12.2.1 Configuration(配置Connection) 12.2.2 ...
为了解决UTF-8中文乱码问题,需要在Hibernate的配置文件(hibernate.cfg.xml)中设置字符集为UTF-8,并确保数据库连接URL也包含相应的字符集参数。 在这个整合例子中,数据库连接、SessionFactory的创建、DAO(数据...