2017-11-21 21 views
0

이 내 sapplication.yml왜 내 HikariCP springboot가이 예외를 던집니까? 유형 :

spring: 

데이터 소스입니다 주 com.zaxxer.hikari.HikariDataSource :

ApplicationContext applicationContext = SpringApplication.run(
      TransqlApplication.class, args); 
    DataSource dataSource = applicationContext.getBean(DataSource.class); 
    System.out.println("datasource is :" + dataSource); 
    //检查数据库是否是hikar数据库连接池 
    if (!(dataSource instanceof HikariDataSource)) { 
     System.err.println(" Wrong datasource type :" 
       + dataSource.getClass().getCanonicalName()); 
     System.exit(-1); 
    } 
    try { 
     Connection connection = dataSource.getConnection(); 
     ResultSet rs = connection.createStatement() 
       .executeQuery("SELECT 1"); 
     if (rs.first()) { 

      System.out.println("Connection OK!"); 
     } else { 
      System.out.println("Something is wrong"); 
     } 
     // connection.close(); 
     // System.exit(0); 

    } catch (SQLException e) { 
     System.out.println("FAILED"); 
     e.printStackTrace(); 
     System.exit(-2); 
     // TODO: handle exception 
    } 

및이 내 스타터입니다

serverName: localhost 
    portNumber: 3306 
    databaseName: ccoee 
    username: root 
    password: root 
    dataSourceClassName: com.mysql.cj.jdbc.Driver 
secondary: 
    serverName: localhost 
    portNumber: 3306 
    databaseName: ccoee 
    username: root 
    password: root 
    dataSourceClassName: com.mysql.cj.jdbc.Driver 

이 제 예외 :

,492,269,666,168,

2017년 11월 21일 10 : 10 : 스레드 33.126Exception "주요"java.lang.RuntimeException가 : java.lang.ClassCastException가 :은 javax.sql.DataSource에 com.mysql.cj.jdbc.Driver 캐스팅 할 수 없습니다 INFO at com.zaxxer.hikari.util.UtilityElf.createInstance (UtilityElf.java:93) 676 --- com.zaxxer.hikari.pool.PoolBase.initializeDataSource (PoolBase.java:338) [main] at com .zaxxer.hikari.pool.PoolBase. (PoolBase.java:117) com.zaxxer.hikari.HikariDataSource (com.zaxxer.hikari.pool.HikariPool). (HikariPool.java:109) : com.zaxxer.hikari에서 .HikariDataSource.getConnection (HikariDataSource.java:97) HikariPool-1 - 시작 중 ... at com.mycjj.transql.TransqlApplication.main (TransqlApplica (java.security.java:51) 에 의해 발생 : java.lang.ClassCastException : com.mysql.cj.jdbc.Driver를 javax.sql.DataSource로 캐스팅 할 수 없음 at java.lang.Class.cast (Class.java:3369) com.zaxxer.hikari.util.UtilityElf.createInstance (UtilityElf.java:82) ... 5 더보기 2017-11-21 10 : 10 : 34.204 ERROR 676 --- [pool-1-thread-1]

답변

0

JDBC 드라이버 클래스는 javax.sql.DataSource이 아닙니다.이 클래스는 다음과 같은 경우에 사용할 수 있습니다. dataSourceClassName 속성을 사용하면 안되므로 driverClassName 속성을 사용하십시오.

또한 com.mysql.cj.jdbc.Driver은 (버려진) MySQL Connector/J 6.0 또는 아직 개발중인 8.0의 개발 버전의 클래스 이름입니다. 이 버전은 출시 된 버전이 아니며 프로덕션 환경에서 사용해서는 안됩니다.