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 ???
danke für die Antwort, ich werde es versuchen und lassen Sie wissen, – Igor
arbeitete wie ein Charme :) – Igor