android - How to properly install mysql connector in Eclipse? -
first of i'd project course in university , @ same time first app android more complicated calculator, understand have done unforgivable mistakes, priority code should work. can insecure , not considering cases, long cases won't appear, do.
my app intended running on android , first of there should appear login screen takes login , password, makes hash of password , contacts database on web server compare hashes. told use free database db4free.net.
i created class serwer, responsible exclusively contacting database. far understood tutorials , stackoverflow questions , answers, connection should consist of:
- loading driver,
- registering in drivermanager class,
- using getconnection method open connection, passing credentials,
- preparing , executing sql query,
- fetching result set.
i learned should download mysql-connector-java-5.1.38-bin.jar file. threads on stackoverflow suggested, copied main directory of project (i have copy workspace , take professor's computer when finish), added libraries tab of properties external library. when run project on smartphone, java.lang.classnotfoundexception: didn't find class "com.mysql.jdbc.driver" error. tried check library in order , export tab - doesn't compile, returning conversion dalvik format failed error 1.
i've tried many scenarios in other stackoverflow threads, such cleaning project in many configurations, changing order of build path, etc. suspect i've made simple, stupid mistake not see , hope recognize it.
here serwer class:
package com.planer.serwer; import java.sql.connection; import java.sql.drivermanager; import java.sql.resultset; import java.sql.sqlexception; import java.sql.statement; import java.sql.driver; import com.planer.mainactivity; import com.example.planer.r; import com.planer.pracownik.pracownik; public class serwer { private connection conn = null; private static driver driver; private static int status; private mainactivity parentactivity; private final string user = parentactivity.getresources().getstring(r.string.db_login); private final string pass = parentactivity.getresources().getstring(r.string.db_pass); private final string url= "jdbc:mysql://db4free.net:3306/kalendarzplaner"; public static final int status_good = 0; public static final int status_no_connection = 1; public static final int status_not_authenticated = 2; public static final int status_sql_exception = 4; public static final int status_no_driver = 8; public serwer(mainactivity parentactivity){ status = status_no_connection; try { driver = new com.mysql.jdbc.driver(); } catch (exception ex) { status |= status_no_driver; } catch (noclassdeffounderror e){ status |= status_no_driver; } this.parentactivity = parentactivity; } public pracownik authorize(string login, string passhash){ pracownik pracownik = new pracownik("","",false,status); status |= this.polacz(); if(status != serwer.status_good) { pracownik.status |= status; return pracownik; } statement statement = null; resultset resultset = null; string query = "select passhash, imie_nazwisko, czy_kierownik auth login='" + login + "';"; try { statement = conn.preparestatement(query); resultset = statement.executequery(query); resultset.first(); if(resultset.getstring("passhash").tostring().compareto(passhash)!= 0){ status |= serwer.status_not_authenticated; pracownik.status |= status; return pracownik; } pracownik.login = login; pracownik.imie_nazwisko = resultset.getstring("imie_nazwisko"); pracownik.czy_kierownik = resultset.getboolean("czy_kierownik"); } catch (sqlexception ex) { pracownik.status |= pracownik.status_sql_exception; } return pracownik; } public int polacz() { int done = status_no_connection; if((status & status_no_driver) != 0) return done; // connection try { drivermanager.registerdriver(driver); conn = drivermanager.getconnection(url, user, pass); done = serwer.status_good; } catch (java.sql.sqlexception ex) { done |= serwer.status_sql_exception; system.out.println("sqlexception: " + ex.getmessage()); } return done; } } as said, status of result of authorise method 9, expected when driver not loaded. append workspace contents.
first, want start suggesting tried out android studio. it's new more modern ide developed purpose of android development.
secondly, contacting database on android lot different example contacting db java/c# in desktop application.
to contact online mysql database need restful service (written in php example) gets data database , sends on application. service communication point between app , database. service sends data application in human-unfriendly format json, app needs parse , display it.

Comments
Post a Comment