2016-08-04 36 views
0

Ich versuche Mybatis-guice mit mysql zu verwenden, aber ich erhalte die nächste Ausnahme abfangen:Mybatis-guice mysql fehlgeschlagen JDBC-Treiber laden

Fehler Abfrage-Datenbank. Ursache: java.sql.SQLException: Fehler beim Festlegen des Treibers für UnpooledDataSource. Ursache: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

Ursache: java.sql.SQLException: Fehler beim Setzen Treiber auf UnpooledDataSource. Ursache: java.lang.ClassNotFoundException: org.hsqldb.jdbcDriver

Hier ist der Code, den ich versuche zu laufen:

public class DaoImpl implements Dao { 
    @Inject 
    private MyMapper mapper; 

    public String getSomething() { 
     return mapper.getSomething(); 
    } 
} 

public interface Dao { 
    String getSomething(); 
} 

public interface MyMapper { 
    @Select("SELECT DATE_FORMAT(NOW(),'%d/%m/%Y %H:%i') as time") 
    String getSomething(); 
} 

Injector injector = Guice.createInjector(
     new MyBatisModule() { 
      @Override 
      protected void initialize() { 
       install(JdbcHelper.MySQL); 
       environmentId("development"); 

       bindDataSourceProviderType(PooledDataSourceProvider.class); 
       bindTransactionFactoryType(JdbcTransactionFactory.class); 
       addMapperClass(MyMapper.class); 

       bindProperties(binder(), getMybatisProperties()); 
       bind(Dao.class).to(DaoImpl.class); 
      } 
     } 
); 

private Properties getMybatisProperties() { 
    Properties myBatisProperties = new Properties(); 
    myBatisProperties.setProperty("JDBC.host", "127.0.0.1"); 
    myBatisProperties.setProperty("JDBC.port", "3306"); 
    myBatisProperties.setProperty("JDBC.schema", "my_schema"); 
    myBatisProperties.setProperty("JDBC.driver", "com.mysql.jdbc.Driver")); 
    myBatisProperties.setProperty("JDBC.username", "root"); 
    myBatisProperties.setProperty("JDBC.password", ""); 
    myBatisProperties.setProperty("JDBC.autoCommit", "false"); 
    return myBatisProperties; 
} 

Und als ich versuche zu laufen: injector.getInstance(Dao.class).getSomething()

Ich habe versucht, Entfernen Sie myBatisProperties.setProperty("JDBC.driver", "com.mysql.jdbc.Driver"));, aber das Ergebnis war das gleiche.

Auch nach mehreren Stunden Debugging des Codes, install(JdbcHelper.MySQL); sollte den Treiber selbst hinzufügen. Ist diese Annahme richtig?

ist die Ausnahme auf mapper.getSomething();

Ideen geworfen ???

Antwort

1

Sie benötigen einen Treiber mysql-connector-java oder überprüfen Sie die Version des Treibers und Ihre put mysql-connector-java-bin.jar im lib

+0

danke für die Antwort, ich werde es versuchen und lassen Sie wissen, – Igor

+0

arbeitete wie ein Charme :) – Igor