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

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

....

操作类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,仍为乱码,估计应该是乱码。如何正确编码?

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2008-02-28 15:44

浏览 1283

论坛回复 / 浏览 (0 / 3206)

评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值