`
xinlnix
  • 浏览: 3439 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

将文本文件写入Hibernate的CLOB字段,中文乱码如何解决?

阅读更多
mysql 5.0数据库mydb
CREATE DATABASE mydb
    CHARACTER SET 'utf8'
    COLLATE 'utf8_general_ci';

表employee:
create table employee (
	id integer not null auto_increment, 
	firstname varchar(15), 
        ........
	resume text, 
	primary key (id)
)ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

employee.hbm.xml
<class name="Employee"  table="employee">
    <id name="id" type="java.lang.Integer" column="id">
        <generator class="identity" />
    </id>

    <property name="firstname" type="java.lang.String" column="firstname"  length="15"/>
    ....
    <property name="resume"    type="java.sql.Clob"    column="resume" />

</class>

操作类Dao.java:
	public void importLargeObjects() {

		String filename = null;
		File file;
		String rootPath ;
		
		Session session = Dao.sessionFactory.openSession();
		Query query = session.createQuery("from Employee");

		List<?> list = query.list();
		Iterator<?> it = list.iterator();
		while (it.hasNext()) {
		    Employee employee = (Employee) it.next();
			
		    session.beginTransaction();
		    rootPath = Thread.currentThread().getContextClassLoader().getResource("").getPath().toString();
		    //取build/texts/目录下雇员名.txt为当前文件名,文本文件均以utf8编码。
		    filename = rootPath+"texts/" + employee.getFirstname() + ".txt";
		    file = new File(filename);
		    try {
				FileReader reader = new FileReader(filename);
				// 写入的文件不能过大,即要小于int最大值。
				Clob resume = Hibernate.createClob(reader, (int) file.length());
				employee.setResume(resume);
		     } catch (FileNotFoundException e) {
				e.printStackTrace();
		     }
		     //file.delete();
		     session.save(employee);			
		     session.getTransaction().commit();
		}
		session.close();			
	}


用MySQL Query Browser查看resume为乱码,怀疑可能是MySQL Query Browser问题,使用SQL Manager for MySQL 2007(4.1)查看resume,仍为乱码,估计应该是乱码。如何正确编码?
分享到:
评论

相关推荐

    Hibernate存储Clob字段的方式总结

    Hibernate存储Clob字段的方式总结涉及了在Java开发中使用Hibernate操作大型文本字段Clob的操作方法。本文主要介绍了两种操作Clob字段的方法,一种是将Clob字段直接映射为String类型,另一种是使用Clob类型进行处理。...

    dblink_clob字段异常解决方案

    下面将讨论解决dblink_clob字段异常的解决方案。 什么是dblink? DBLink是Oracle数据库中的一种机制,允许用户从一个数据库实例访问另一个数据库实例中的数据。DBLink提供了一种方式来访问远程数据库中的数据,而...

    spring+hibernate 解决大字段(clob)

    本文将详细介绍如何在Spring与Hibernate框架结合的情况下,有效地处理Oracle 10g数据库中的CLOB字段。 #### 一、环境配置 为了确保项目能够顺利运行,首先需要搭建好开发环境。本示例中使用的环境配置如下: 1. *...

    向Oracle数据库插入Clob大段文本解决方法

    本文将详细介绍如何有效地向Oracle数据库插入Clob大段文本,以及在操作过程中可能遇到的问题与解决方案。 ### 一、理解CLOB类型 CLOB类型是Oracle数据库中用于存储大量文本数据的数据类型,它可以存储最大为4GB的...

    java中操作oracle的CLOB字段精解

    下面我们将详细介绍 Java 中操作 Oracle 的 CLOB 字段的相关知识点。 1. CLOB 类型的介绍 CLOB(Character Large OBject)是一种 Oracle 数据库中的数据类型,用于存储大型文本数据。CLOB 类型的字段可以存储大量...

    spring+hibernate操作oracle的clob字段

    在J2EE开发中,处理大数据对象(如大文本或二进制数据)时,Oracle数据库的CLOB字段常被用来存储超过4000字节的信息。Spring和Hibernate框架结合使用可以有效地进行CLOB字段的操作。以下是实现这一功能的关键步骤和...

    读取oracle数据库中clob字段的值

    ### 读取Oracle数据库中CLOB字段的值 在处理Oracle数据库时,经常会遇到需要读取CLOB(Character Large Object)类型字段的情况。CLOB主要用于存储大量的文本数据,如文章、文档等内容。由于CLOB类型的数据量可能...

    Oracle如何对CLOB行字段来执行全文检索

    CLOB 字段可以存储大量的文本数据,超过 4000 字的文本一般存储在 CLOB 中。例如,在创建表结构时,我们可以使用以下 SQL 语句: ``` create table products( productid number(10) not null, name varchar2(255)...

    数据库读取clob字段

    本文将详细介绍如何在Oracle数据库中读取CLOB类型的字段,并提供一个示例代码片段来展示具体的实现过程。 #### CLOB的基本概念 CLOB是Oracle数据库提供的用于处理大量字符数据的一种特殊数据类型。它支持Unicode...

    jdbc读写Oracle的CLOB字段

    JDBC读写Oracle的CLOB字段

    ORACLE中CLOB字段转String类型

    本文将详细介绍如何在Oracle中实现CLOB字段到字符串类型的转换,并探讨其中的关键技术和注意事项。 #### 一、CLOB概述 1. **定义**: - `CLOB`是Oracle数据库提供的一种特殊的数据类型,用于存储大文本数据。 - ...

    jdbc 处理clob类型字段

    首先,创建一个Clob对象,并将待插入的文本数据写入到Clob对象中,然后在SQL语句中设置对应的参数。例如: ```java String sql = "INSERT INTO my_table (my_clob_column) VALUES (?)"; Connection conn = ... // ...

    hibernate Blob、Clob字段的映射的例子

    hibernate Blob、Clob字段的映射的例子.数据库mysql,数据库放在文件夹里面,例子的说明文章在我的csdn blog: http://blog.csdn.net/zhengcandan

    CLOB 字段类型报错 ORA-01704: 文字字符串过长的解决

    在Oracle数据库中,CLOB(Character Large Object)字段类型用于存储大量的文本数据,如XML文档、长篇文章或者大量字符数据。然而,当你尝试向CLOB字段插入数据时,如果超过了Oracle规定的最大限制,就会遇到“ORA-...

    sql server中的image类型的数据导出到oracle的clob字段中

    我们使用了 Java 语言和 JDBC 驱动程序来实现数据的导出,并将 Image 类型数据写到文件中,然后将文件中的数据读取出来,并将其设置到 Oracle 的 CLOB 字段中。这种方法可以帮助我们实现不同数据库管理系统之间的...

    关于Oracle的 Clob数据类型在Hibernate中的应用小结

    在Hibernate框架中,Clob类型的字段处理是数据库操作中的一个关键环节,尤其是在处理大量文本数据时。以下是对Oracle Clob在Hibernate中应用的详细总结: 3.1 传统的JDBC方式: 在没有使用ORM框架之前,我们通常...

    Oracle如何插入CLOB字段值

    Oracle如何插入CLOB字段值,附件为简单的示例代码。Oracle如何插入CLOB字段值,附件为简单的示例代码。

    修改clob blob 字段

    修改clob blob 字段 修改clob blob 字段 修改clob blob 字段

    DELPHI的CLOB和BLOB存取处理.zip_DELPHI的CLOB和BLOB存取处理_hallzgz

    - 对CLOB数据,可以将文本转换为TMemoryStream,然后使用AsWideString属性从Stream读取或写入。 4. 分块读写: - 当数据过大时,可以采用分块读写,每次只处理一部分数据,减少内存占用。 - 使用Seek方法定位到...

    Hibernate对BLOB CLOB操作

    在Java的持久化框架Hibernate中,BLOB(Binary Large Object)和CLOB(Character Large Object)是用来处理大数据类型的,如图像、音频、大型文本等。本文将深入探讨Hibernate如何进行BLOB和CLOB的操作,以及相关的...

Global site tag (gtag.js) - Google Analytics