HIBERNATE乱码问题

我在做一个练习的时候后台数据库是Sybase的字符集是cp850用Spring的Hibernate连接后用find()从数据库里取到的值都是乱码,我写了一个方法里到List里把它一项一项的转正了GBK,但是我想问问有没有更好的方法,不用一个一个的转。
下面是applicationContext.xml的代码
[code]
<?xml version="1.0" encoding="UTF-8"?>

<!--
- Application context definition for JPetStore's business layer.
- Contains bean references to the transaction manager and to the DAOs in
- dataAccessContext-local/jta.xml (see web.xml's "contextConfigLocation").

- in Spring Train by zhangzhenhua 2007.4.23
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd">



<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>com.sybase.jdbc2.jdbc.SybDriver</value>
</property>
<property name="url">
<value>
jdbc:sybase:Tds:10.201.1.111:5000/sgmarketdatabase
</value>
</property>
<property name="username">
<value>sa</value>
</property>
<property name="password">
<value>su27ik</value>
</property>
</bean>

<!--
<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/sysmanager"/>
-->
<bean id="SessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"></ref>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SybaseDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>
com/lhd/sysmanager/pojo/MarketRole.hbm.xml
</value>
<value>
com/lhd/sysmanager/pojo/MarketWork.hbm.xml
</value>
<value>
com/lhd/sysmanager/pojo/MarketUser.hbm.xml
</value>
<value>
com/lhd/sysmanager/pojo/WorkLog.hbm.xml
</value>
<value>
com/lhd/sysmanager/pojo/PubDept.hbm.xml
</value>
</list>
</property>
</bean>
<bean id="MarketRoleDAO"
class="com.lhd.sysmanager.dao.imp.MarketRoleDAO">
<property name="sessionFactory">
<ref bean="SessionFactory"></ref>
</property>
</bean>
<bean id="MarketWorkDAO"
class="com.lhd.sysmanager.dao.imp.MarketWorkDAO">
<property name="sessionFactory">
<ref bean="SessionFactory"></ref>
</property>
</bean>
<bean id="MarketUserDAO"
class="com.lhd.sysmanager.dao.imp.MarketUserDAO">
<property name="sessionFactory">
<ref bean="SessionFactory"></ref>
</property>
</bean>
<bean id="WorkLogDAO"
class="com.lhd.sysmanager.dao.imp.WorkLogDAO">
<property name="sessionFactory">
<ref bean="SessionFactory"></ref>
</property>
</bean>
<bean id="PubDeptDAO"
class="com.lhd.sysmanager.dao.imp.PubDeptDAO">
<property name="sessionFactory">
<ref bean="SessionFactory"></ref>
</property>
</bean>
<bean id="PageDAO"
class="com.lhd.sysmanager.dao.imp.PageDAO">
<property name="sessionFactory">
<ref bean="SessionFactory"></ref>
</property>
</bean>
<tx:advice id="TxManager"><!-- 事务通知 -->
<tx:attributes>
<tx:method name="list*" read-only="true" rollback-for="Exception"/>
<tx:method name="find*" read-only="true" rollback-for="Exception"/>
<tx:method name="query*" read-only="true" rollback-for="Exception"/>
<tx:method name="add*" rollback-for="Exception"/>
<tx:method name="dele*" rollback-for="Exception"/>
</tx:attributes>
</tx:advice>
<aop:config><!-- 事务管理 -->

<aop:pointcut id="defaultService" expression="execution(* com.lhd.sysmanager.manager.*.*(..))"/>
<aop:advisor pointcut-ref="defaultService" advice-ref="TxManager"/>
</aop:config>
<!-- Spring集成的hibernate事务管理类 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory"><ref local="SessionFactory"/></property>
</bean>

<bean id="MarketRoleService" class="com.lhd.sysmanager.manager.MarketRoleManager">
<property name="dao" ref="MarketRoleDAO"></property>
</bean>

<bean id="MarketUserService" class="com.lhd.sysmanager.manager.MarketUserManager">
<property name="dao" ref="MarketUserDAO"></property>
</bean>

<bean id="MarketWorkService" class="com.lhd.sysmanager.manager.MarketWorkManager">
<property name="dao" ref="MarketWorkDAO"></property>
</bean>

<bean id="PubDeptService" class="com.lhd.sysmanager.manager.PubDeptManager">
<property name="dao" ref="PubDeptDAO"></property>
</bean>
<bean id="WorkLogService" class="com.lhd.sysmanager.manager.WorkLogManager">
<property name="dao" ref="WorkLogDAO"></property>
</bean>
<bean id="PageService" class="com.lhd.sysmanager.manager.PageManager">
<property name="page" ref="PageDAO"></property>
</bean>
</beans>
[/code]
下面是find()方法
[code]
public List find() {
log.debug("finding MarketWork instance by example");
try {
List results = getHibernateTemplate().find("from com.lhd.sysmanager.pojo.MarketUser u order by u.id desc");
log.debug("find successful, result size: "
+ results.size());
for(int i= 0;i<result.size();i++)
{
MarketUser us = (MarketUser)result.get(i);
us.setDeptName(PubMethod.ISOtoGBK(us.getDeptName()));
System.out.println("#######"+us.getDeptName()+"#####");
} return results;
} catch (RuntimeException re) {
log.error("find failed", re);
throw re;
}
}
[/code]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值