HikariCP的编码设置

来源:互联网 发布:淘宝日式家具品牌 编辑:程序博客网 时间:2024/05/20 01:10

HikariCP可以说是目前速度最快的数据源了。然而该数据源不像之前的数据源(如Druid或者C3P0)那样默认无需设置编码,因此需要额外针对编码做一些设置,否则就会出现乱码问题。

方法一:在对数据源进行初始化时进行设置。

清单1.传统方式初始化数据源

HikariDataSource dataSource = new HikariDataSource();dataSource.setDriverClassName("com.mysql.jdbc.Driver");dataSource.setUsername("root");dataSource.setPassword("root");dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test");//下面两行是重点dataSource.addDataSourceProperty("useUnicode", "true");dataSource.addDataSourceProperty("characterEncoding", "utf8");return dataSource;

清单2.初始化数据源编码——与Spring 4整合

package org.fhp.hikaricpdemo.config;import com.zaxxer.hikari.HikariDataSource;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.jdbc.datasource.DataSourceTransactionManager;import javax.sql.DataSource;@Configuration@EnableAspectJAutoProxy(proxyTargetClass=true)@EnableTransactionManagementpublic class DaoConfig {    @Bean(name="daoDataSource")    public DataSource daoDataSource() {        HikariDataSource dataSource = new HikariDataSource();        dataSource.setDriverClassName("com.mysql.jdbc.Driver");        dataSource.setUsername("root");        dataSource.setPassword("root");        dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test");        //下面两行是重点        dataSource.addDataSourceProperty("useUnicode", "true");        dataSource.addDataSourceProperty("characterEncoding", "utf8");        return dataSource;    }    @Bean    public DataSourceTransactionManager transactionManager(@Qualifier("daoDataSource") DataSource dataSource) {        return new DataSourceTransactionManager(dataSource);    }}

方法二:在JDBC的URL中指定编码

清单3.在URL中指定编码

HikariDataSource dataSource = new HikariDataSource();dataSource.setDriverClassName("com.mysql.jdbc.Driver");dataSource.setUsername("root");dataSource.setPassword("root");//重点是这一行dataSource.setJdbcUrl("jdbc:mysql://localhost:3306test?useUnicode=true&characterEncoding=UTF-8");return dataSource;


清单4.URL中指定编码——与Spring 4整合

package org.fhp.hikaricpdemo.config;import com.zaxxer.hikari.HikariDataSource;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.jdbc.datasource.DataSourceTransactionManager;import javax.sql.DataSource;@Configuration@EnableAspectJAutoProxy(proxyTargetClass=true)@EnableTransactionManagementpublic class DaoConfig {    @Bean(name="daoDataSource")    public DataSource daoDataSource() {        HikariDataSource dataSource = new HikariDataSource();        dataSource.setDriverClassName("com.mysql.jdbc.Driver");        dataSource.setUsername("root");        dataSource.setPassword("root");        //重点是这一行        dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8");        return dataSource;    }    @Bean    public DataSourceTransactionManager transactionManager(@Qualifier("daoDataSource") DataSource dataSource) {        return new DataSourceTransactionManager(dataSource);    }}




原创粉丝点击