2017-08-07 11 views
0

JDBCドライバマネージャを使用してMySQL DBに接続している間、接続は正常に行われ、期待どおりの結果セットが取得されます。しかしorg.springframework.jdbc.datasource.DriverManagerDataSourceまたは org.springframework.jdbc.datasource.SimpleDriverDataSourceのいずれかを使用してSpring構成を経由して接続しようとしたときにロードされたJDBC MySQLドライバが、Springコンフィグレーションを介してMySQLに接続できません

JDBCドライバはcom.mysql.jdbc.Driverがロードされますが、作るために失敗しますMySQLとの接続

テストアプリケーションクラス: パッケージcom.xxxx.xxxx.xxxx;データソースの

import com.xxxx.xxxx.xxxx.dao.TimeslotDAO; 
import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 

public class App { 

    public static void main(String[] args) { 
     //testClassic(); // This works and gets the results. 
     testSpring(); // Fails with SQLException. 
    } 

    private static void testSpring(){ 
     ApplicationContext ctx = new ClassPathXmlApplicationContext("Spring-Module.xml"); 
     TimeslotDAO timeSlot = (TimeslotDAO) ctx.getBean("timeslotDAO"); 
     timeSlot.populateTimeSlotsCache(); 
    } 

    private static void testClassic(){ 
     try{ 
      Class.forName("com.mysql.jdbc.Driver"); 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 
     try { 
      Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/FR", "root", "xxxx"); 
      if(conn!=null) { 
       String sql = "select * from TB_AUTO_xxx_SLOT_xxx " + 
         "where i_book_id =2639"; 
       PreparedStatement stmt = conn.prepareStatement(sql); 
       ResultSet rs = stmt.executeQuery(); 
       while(rs.next()){ 
        System.out.println(rs.getLong(1)); 
       } 
       if(rs!=null) rs.close(); 
       if(stmt!=null)stmt.close(); 
       if(conn!=null)conn.close(); 
      } 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 

    } 
} 

春の構成:ログインで

<bean id="dataSource" class="org.springframework.jdbc.datasource.SimpleDriverDataSource"> 
     <property name="driverClassName" value="com.mysql.jdbc.Driver"/> 
     <property name="url" value="jdbc:msql://localhost:3306/FR" /> 
     <property name="username" value="root"/> 
     <property name="password" value="xxxx"/> 

</bean> 

例外:

INFO: Loaded JDBC driver: com.mysql.jdbc.Driver 
java.sql.SQLException: No suitable driver found for jdbc:msql://localhost:3306/FR 
    at java.sql.DriverManager.getConnection(DriverManager.java:689) 
    at java.sql.DriverManager.getConnection(DriverManager.java:208) 
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:174) 
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:165) 
    at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:149) 
    at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:119) 
    at com.xxxx.xxxx.xxxx.dao.impl.TimeslotDAOImpl.populateTimeSlotsCache(TimeslotDAOImpl.java:23) 
    at com.xxxx.xxxx.xxxx.App.testSpring(App.java:22) 
    at com.xxxx.xxxx.xxxx.App.main(App.java:16) 
+1

:: 'JDBC:msql' – Jens

+0

@Jensミスが何であるかは、申し訳ありません – user2166213

+0

JDBCを理解していない:mSQLのは、JDBCでなければなりません:M ** Y *接続文字列は次のようになります。 * SQL:value = "jdbc:msql:// localhost:3306/FR" - > value = "jdbc:m ** y ** sql:// localhost:3306/FR" – Jens

答えて

0

あなたの接続文字列が正しくありません。 mysqlの代わりにmsqlと入力した接続文字列に誤字があります。ここでYを欠場

jdbc:mysql://localhost:3306/FR 
関連する問題