JdbcConnectionSource не найден при использовании ORMLite, скомпилированного в проекте Java в Eclipse ide
Я разрабатываю приложение с eclipse
и используя сопоставление объектов (ORMLite) для доступа к моему mysql
сервер. Слой данных - это еще один проект, составленный в java
и связано как ссылка на мое приложение для Android.
В проекте datalayer я ссылаюсь на каждый файл *.jar, используемый с ormlite. Но при запуске моего приложения я получаю следующее сообщение об ошибке:
"Could not find class 'com.j256.ormlite.jdbc.JdbcConnectionSource',
referenced from method
com.pos.datalayer.querybuilder.DatabaseWorker.connectionSetup"
Вот мой код класса DatabaseWorker:
public class DatabaseWorker implements DatalayerWorkable {
private Type tableMapping = null;
private String actionOnDatabase = null;
private UserBO persistedUser = null;
private Type retVal = null;
public static String hostString = "jdbc:mysql://lucid.selfhost.me/pos";
private static JdbcConnectionSource connection = null;
public DatabaseWorker () { };
public Type loadData( String databaseAction, final Type tableMap ) {
actionOnDatabase = databaseAction;
tableMapping = tableMap;
Thread workerThread = new Thread(new Runnable(){
public void run() {
try {
connection = connectionSetup();
if(actionOnDatabase == "GetLogin"){
retVal = loadUserData(tableMap);
}else if (actionOnDatabase == "loadHotDealz"){
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(connection != null){
//closeConnection(connection);
connection = null;
}
}
}
});
workerThread.start();
return retVal;
}
public boolean persistData( String databaseAction, Type tableMap ) {
Thread workerThread = new Thread(new Runnable(){
public void run(){
}
});
return false;
}
private JdbcConnectionSource connectionSetup() throws SQLException{
//set up sql-connection
JdbcConnectionSource connection = new JdbcConnectionSource(hostString);
((JdbcConnectionSource) connection).setUsername("guest");
((JdbcConnectionSource) connection).setPassword("ObivanK3nobi");
return connection;
}
private void closeConnection(JdbcConnectionSource openedConnection){
try{
if(openedConnection != null){
openedConnection.close();
}
}catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private Type loadUserData(Type tableMapping) throws SQLException{
Dao<UserBO, String> accountDao = null;
if(connection != null){
accountDao = DaoManager.createDao(connection, tableMapping.getClass());
String currentUser = ((UserBO) tableMapping).getUser();
//execute query
persistedUser = accountDao.queryForId(currentUser);
if(persistedUser != null){
persistedUser.setIsLoggedin(1);
accountDao.update(persistedUser);
}
}
return persistedUser;
}
public Type getDatabaseResult(){
return retVal;
}
public void databaseObjCallback(Type databaseResult) {
throw new UnsupportedOperationException("Not implemented yet");
}
}
Буду признателен за любую помощь в решении моей проблемы!
1 ответ
Я думаю, что это проблема пути к классам, если вы не находите ключевые классы ORMLite. Вы должны были загрузить ormlite-core
а также ormlite-jdbc
банки с тем же номером версии. Последняя версия 4.45.
В eclipse в вашем проекте вы должны увидеть папку "Библиотеки со ссылками" или, если вы используете Maven, папку "Зависимости Maven". Оба файла ORMLite должны находиться в одной из этих двух папок, показывая, что они находятся в пути сборки.
Возможно, вам понадобится щелкнуть правой кнопкой мыши ваш проект, открыть меню "Путь сборки", а затем выпустить "Настроить путь сборки". Затем перейдите на вкладку "Библиотеки" и убедитесь, что обе банки ORMLite есть. Если это не так, вам нужно добавить их туда.
Что касается версий коннектора MySQL JDBC, я использую версию 5.1.18, но я думаю, что более новые тоже подойдут. Я не думаю, что несовместимая версия вызовет эту ошибку.
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.18</version>
</dependency>
Надеюсь это поможет.