복붙노트

[SPRING] 어떻게 봄 @Configuration 클래스에 HikariCP와 데이터 소스를 구성하는 방법?

SPRING

어떻게 봄 @Configuration 클래스에 HikariCP와 데이터 소스를 구성하는 방법?

나는 봄 @Configuration 클래스 [데이터베이스 인 오라클]에 HikariCP 데이터 소스를 구성하기 위해 노력하고있어. 그러나 그것은 작동하지 않습니다.

나는 인터넷에서 검색 및 HikariCP 데이터 소스 생성자를 구성 할 필요가 있음을 발견했다. 나는이 [그들의 ​​GitHub의 웹 페이지에서 언급 한 것 방법]을 시도,하지만 여전히 작동하지 않습니다. 이 문제를 해결 도와주세요.

private HikariDataSource dataSource() {
    final HikariDataSource ds = new HikariDataSource();
    ds.setMaximumPoolSize(100); 
    ds.setDataSourceClassName("oracle.jdbc.driver.OracleDriver"); 
    ds.addDataSourceProperty("url", "jdbc:oracle:thin:@localhost:1521:XE"); 
    ds.addDataSourceProperty("user", "username");
    ds.addDataSourceProperty("password", "password");
    ds.addDataSourceProperty("cachePrepStmts", true); 
    ds.addDataSourceProperty("prepStmtCacheSize", 250); 
    ds.addDataSourceProperty("prepStmtCacheSqlLimit", 2048); 
    ds.addDataSourceProperty("useServerPrepStmts", true);
    return ds;
} 

해결법

  1. ==============================

    1.여기 위키에 우리의 예를 확인할 수 있습니다 :

    여기 위키에 우리의 예를 확인할 수 있습니다 :

    https://github.com/brettwooldridge/HikariCP/wiki/Spring-Hibernate-with-Annotations

    이 문서에 포함로 :

    http://www.3riverdev.com/blog/tutorial-spring-hibernate-hikaricp/

    편집하다: 위에 제공된 코드가 올바르지 않습니다. 당신은 오라클 데이터 소스에 대한 MySQL의 데이터 소스 속성을 사용하려고합니다. 그리고 지금 당신은 데이터 소스 기반의 하나에 드라이버 기반 구성을 혼합하고 있습니다. 그것을 단순화 :

    운전사:

    private HikariDataSource dataSource() {
       final HikariDataSource ds = new HikariDataSource();
       ds.setMaximumPoolSize(100);
       ds.setDriverClassName("oracle.jdbc.driver.OracleDriver"); 
       ds.setJdbcUrl("jdbc:oracle:thin:@localhost:1521:XE"); ;
       ds.setUsername("username");
       ds.setPassword("password");
       return ds;
    }
    

    또는 데이터 소스 :

    private HikariDataSource dataSource() {
       final HikariDataSource ds = new HikariDataSource();
       ds.setMaximumPoolSize(100);
       ds.setDataSourceClassName("oracle.jdbc.pool.OracleDataSource");
       ds.addDataSourceProperty("serverName", "yourServer");
       ds.addDataSourceProperty("port", "1521");
       ds.addDataSourceProperty("databaseName", "XE");
       ds.addDataSourceProperty("user", "username");
       ds.addDataSourceProperty("password", "password");
       return ds;
    }
    

    당신이 초당 20K 거래를 실행하지 않는 한 또한, 100 연결은 10 ~ 20이 더 합리적이다, 오라클에 대한 큰에 방법입니다.

  2. ==============================

    2.다음과 같은 뭔가가 필요에 맞게해야한다 :

    다음과 같은 뭔가가 필요에 맞게해야한다 :

    @Bean
    public DataSource dataSource() {
         HikariConfig config = new HikariConfig();
         config.setMaximumPoolSize(100);
         config.setDataSourceClassName("oracle.jdbc.pool.OracleDataSource");
         config.addDataSourceProperty("serverName", "localhost");
         config.addDataSourceProperty("port", "1521");
         config.addDataSourceProperty("databaseName", "XE");
         config.addDataSourceProperty("user", "yourUser");
         config.addDataSourceProperty("password", "yourPassword");
    
         return new HikariDataSource(config);
    }
    
  3. from https://stackoverflow.com/questions/23630123/how-to-configure-datasource-with-hikaricp-in-spring-configuration-class by cc-by-sa and MIT license