JavaWeb服务器字符集与Oracle数据库字符集不相同的解决方案

1、项目环境:

JavaWeb项目,字符集UTF-8,框架Spring、SpringMVC、Hibernate、JPA、SpringData、Shrio;

连接数据库使用阿里巴巴的Druid连接池;

数据库Oracle11g,字符集US7ASCII;

2、数据库驱动:

数据库驱动是解决这个问题的关键,一开始使用的不是这个驱动,所以导致无法转码

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc6</artifactId>
    <version>11.2.0.3</version>
    <scope>test</scope>
</dependency>

3、数据源配置:

配置数据源的时候主要配置数据库驱动类、oracle瘦连接以及连接配置,其中最后一项根据需要设置不同的字符编码

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${jdbc.driver}"/>
        ......
        <property name="url" value="${jdbc.url}"/>
        ......
        <property name="connectionProperties" value="${druid.connectionProperties}"/>
</bean>
-----------------------------------------------------------------------------------
jdbc.driver = com.alibaba.druid.proxy.DruidDriver
......
jdbc.url = jdbc:wrap-jdbc:filters=encoding:jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP) (HOST=xxx)(PORT=xxx))) (CONNECT_DATA=(SERVICE_NAME=xxx)))
......
druid.connectionProperties = serverEncoding=iso-8859-1;clientEncoding=GBK;defaultRowPrefetch=50;bigStringTryClob=true

Guess you like

Origin blog.csdn.net/qq_38386085/article/details/90679754