日期:2014-05-17  浏览次数:20889 次

hibernate+spring操作oracle乱码问题
我使用下面这种方式更新数据库,写入到数据库里面的数据乱码了,这个问题怎么解决呢?
      session = sessionFactory.openSession();
     tran=session.beginTransaction();
     String hql="update entity.Job set nick='张三分12' where jobID=100001";
     Query query=session.createQuery(hql);
     int n=query.executeUpdate();
     System.out.println("更新条数为:"+n);
     tran.commit();
     session.close();
执行完毕后数据库里面的数据为:
JOBID  PASSWORD NICK GENDER 
100001 zhangsan ???  男
使用spring+hibernate的方式完成,请高手指教!

 

------解决方案--------------------
我记得这个好像是hibernate的一个bug。。
首先,你的hibernate连接oracle的字符串中指定的字符集类型是不是和oralce的字符集一致。。

有一个更快的方法,就是把字符串转换为oracle中的字符集,假设oracle字符集是utf-8

String nick = new String("张三分12".getBytes(),"UTF-8")