Подключение к БД

Ответить
tanchik
Сообщения: 57
Зарегистрирован: 21 сен 2012, 15:15

Подключение к БД

Сообщение tanchik » 24 окт 2012, 16:36

Здравствуйте! пытаюсь подключиться к своей БД:

Код: Выделить всё

java.sql.Connection conn = null;
	    try
	    {
	        String userName = "root";
	        String password = "***";
	        String url = "jdbc:mysql://localhost/mydb";
	        Class.forName ("com.mysql.jdbc.Driver").newInstance(); 
	        conn = DriverManager.getConnection (url, userName, password); 
	 
	        Statement stat = (Statement) conn.createStatement();
	        ResultSet res = stat.executeQuery("SELECT count(*) FROM `chat_companies`; "); 
	        if (res.next()){  
	            System.out.println("Count rows in table: " + res.getInt(1)); 
	        }
	    }
	    catch (Exception e)
	    {
	        System.err.println (e.getMessage());
	    }
	    finally
	    {
	        if (conn != null)
	        {
	            try
	                {
	                    conn.close ();
	                }
	            catch (Exception e) {e.printStackTrace(); }
	        }
	    }
но в консоли ошибки :
  • 10-24 13:25:27.833: W/dalvikvm(1015): VFY: unable to find class referenced in signature (Ljavax/naming/Reference;)
    10-24 13:25:27.833: I/dalvikvm(1015): Could not find method javax.naming.Reference.get, referenced from method com.mysql.jdbc.ConnectionPropertiesImpl$ConnectionProperty.initializeFrom
    10-24 13:25:27.843: W/dalvikvm(1015): VFY: unable to resolve virtual method 11733: Ljavax/naming/Reference;.get (Ljava/lang/String;)Ljavax/naming/RefAddr;
    10-24 13:25:27.843: D/dalvikvm(1015): VFY: replacing opcode 0x6e at 0x0004
    10-24 13:25:27.853: W/dalvikvm(1015): VFY: unable to find class referenced in signature (Ljavax/naming/Reference;)
    10-24 13:25:27.853: E/dalvikvm(1015): Could not find class 'javax.naming.StringRefAddr', referenced from method com.mysql.jdbc.ConnectionPropertiesImpl$ConnectionProperty.storeTo
    10-24 13:25:27.853: W/dalvikvm(1015): VFY: unable to resolve new-instance 1026 (Ljavax/naming/StringRefAddr;) in Lcom/mysql/jdbc/ConnectionPropertiesImpl$ConnectionProperty;
    10-24 13:25:27.853: D/dalvikvm(1015): VFY: replacing opcode 0x22 at 0x0006
    10-24 13:25:27.873: D/dalvikvm(1015): DexOpt: unable to opt direct call 0x2dd7 at 0x14 in Lcom/mysql/jdbc/ConnectionPropertiesImpl$ConnectionProperty;.storeTo
    10-24 13:25:28.533: D/dalvikvm(1015): GC_CONCURRENT freed 251K, 4% free 9680K/9991K, paused 82ms+117ms, total 544ms
    10-24 13:25:29.403: I/dalvikvm(1015): Could not find method java.lang.management.ManagementFactory.getThreadMXBean, referenced from method com.mysql.jdbc.MysqlIO.appendDeadlockStatusInformation
    10-24 13:25:29.403: W/dalvikvm(1015): VFY: unable to resolve static method 10767: Ljava/lang/management/ManagementFactory;.getThreadMXBean ()Ljava/lang/management/ThreadMXBean;
    10-24 13:25:29.403: D/dalvikvm(1015): VFY: replacing opcode 0x71 at 0x0079
    10-24 13:25:29.953: W/System.err(1015): Communications link failure
    10-24 13:25:29.953: W/System.err(1015): The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Подключение к БД

Сообщение rezak90 » 24 окт 2012, 16:46

о это я вам скажу засада :? . Помню были у меня такие ошибки когда я ещё jni ковырял и компилировал в java потом подключал эти либы. В кратце скажу что это что то с подключаемыми либами, потому как они скорей всего написаны на C/C++/Assembler и не правильно скомпилированы по Java или же правильно но под андроид они не катят, или катят но с глюками.
Попробуйте в коде сделать System.loadLibrery("ваша либа"); может поможет но я сомневаюсь.
R.id.team
Политика на форуме запрещена

tanchik
Сообщения: 57
Зарегистрирован: 21 сен 2012, 15:15

Re: Подключение к БД

Сообщение tanchik » 24 окт 2012, 17:01

rezak90 писал(а):о это я вам скажу засада :? . Помню были у меня такие ошибки когда я ещё jni ковырял и компилировал в java потом подключал эти либы. В кратце скажу что это что то с подключаемыми либами, потому как они скорей всего написаны на C/C++/Assembler и не правильно скомпилированы по Java или же правильно но под андроид они не катят, или катят но с глюками.
Попробуйте в коде сделать System.loadLibrery("ваша либа"); может поможет но я сомневаюсь.
теперь такое в консоли:
  • 10-24 13:59:30.153: E/AndroidRuntime(1162): FATAL EXCEPTION: main
    10-24 13:59:30.153: E/AndroidRuntime(1162): java.lang.UnsatisfiedLinkError: Couldn't load mysql-connector-java-5.1.22-bin.jar: findLibrary returned null
    10-24 13:59:30.153: E/AndroidRuntime(1162): at java.lang.Runtime.loadLibrary(Runtime.java:365)
    10-24 13:59:30.153: E/AndroidRuntime(1162): at java.lang.System.loadLibrary(System.java:535)
    10-24 13:59:30.153: E/AndroidRuntime(1162): at com.example.op.active_talk.com.MainMenu.onCreate(MainMenu.java:48)
    10-24 13:59:30.153: E/AndroidRuntime(1162): at android.app.Activity.performCreate(Activity.java:5008)
    10-24 13:59:30.153: E/AndroidRuntime(1162): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
    10-24 13:59:30.153: E/AndroidRuntime(1162): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
    10-24 13:59:30.153: E/AndroidRuntime(1162): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
    10-24 13:59:30.153: E/AndroidRuntime(1162): at android.app.ActivityThread.access$600(ActivityThread.java:130)
    10-24 13:59:30.153: E/AndroidRuntime(1162): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
    10-24 13:59:30.153: E/AndroidRuntime(1162): at android.os.Handler.dispatchMessage(Handler.java:99)
    10-24 13:59:30.153: E/AndroidRuntime(1162): at android.os.Looper.loop(Looper.java:137)
    10-24 13:59:30.153: E/AndroidRuntime(1162): at android.app.ActivityThread.main(ActivityThread.java:4745)
    10-24 13:59:30.153: E/AndroidRuntime(1162): at java.lang.reflect.Method.invokeNative(Native Method)
    10-24 13:59:30.153: E/AndroidRuntime(1162): at java.lang.reflect.Method.invoke(Method.java:511)
    10-24 13:59:30.153: E/AndroidRuntime(1162): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
    10-24 13:59:30.153: E/AndroidRuntime(1162): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
    10-24 13:59:30.153: E/AndroidRuntime(1162): at dalvik.system.NativeStart.main(Native Method)
это что, потоки нужны? или все пропало?

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Подключение к БД

Сообщение rezak90 » 24 окт 2012, 17:09

а так вы изобретаете велосипед? хотите подключиться напрямую к mysql с андроид приложения? есл да то бросайте это дело, потому как будут бессонные ночи и проклинания всего-всего на свете :D
R.id.team
Политика на форуме запрещена

tanchik
Сообщения: 57
Зарегистрирован: 21 сен 2012, 15:15

Re: Подключение к БД

Сообщение tanchik » 24 окт 2012, 17:15

rezak90 писал(а):а так вы изобретаете велосипед? хотите подключиться напрямую к mysql с андроид приложения? есл да то бросайте это дело, потому как будут бессонные ночи и проклинания всего-всего на свете :D
а как нужно правильно? :oops:

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Подключение к БД

Сообщение rezak90 » 24 окт 2012, 17:22

Вот может почитаете пару сообщений, велось обсуждение: viewtopic.php?f=3&t=124&start=140 начинайте читать от 20 октября.
Всё дело можно решить быстро и безболезненно. Просто всё зависит от того на сколько у вас развязаны руки. Если вы сами делаете приложение то карты вам в руки. Если же вам чётко сказали связаться с mysql из андроида то это совсем другое, там у девушки получилось хоть это далеко не правильно так как эта технология изжила своё уже давно. Если точно сформилируете свою задачу возможно поможем правильно построить архитектуру приложения и уже исходя из неё принимать какие то решения.
R.id.team
Политика на форуме запрещена

tanchik
Сообщения: 57
Зарегистрирован: 21 сен 2012, 15:15

Re: Подключение к БД

Сообщение tanchik » 24 окт 2012, 17:25

rezak90 писал(а):Вот может почитаете пару сообщений, велось обсуждение: viewtopic.php?f=3&t=124&start=140 начинайте читать от 20 октября.
Всё дело можно решить быстро и безболезненно. Просто всё зависит от того на сколько у вас развязаны руки. Если вы сами делаете приложение то карты вам в руки. Если же вам чётко сказали связаться с mysql из андроида то это совсем другое, там у девушки получилось хоть это далеко не правильно так как эта технология изжила своё уже давно. Если точно сформилируете свою задачу возможно поможем правильно построить архитектуру приложения и уже исходя из неё принимать какие то решения.
вообще есть чат, для общения с посетителями сайта.Так вот мне нужно сделать приложение под андроид, чтобы оператор мог заходить в свою админку, видеть пользователей сайта, вызывать их на разговор.Функционал почти тот же что и в обычной админке, только немного урезан.

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Подключение к БД

Сообщение rezak90 » 24 окт 2012, 17:30

у вас есть доступ к серверу? или заказчику/коллеге можете сказать/попросить сделать WebApi. На это уйдёт пару часов, и на то что бы вам получать/отправлять данные уйдёт один час. Главное что бы вы поняли саму архитектуру этого действия.
R.id.team
Политика на форуме запрещена

tanchik
Сообщения: 57
Зарегистрирован: 21 сен 2012, 15:15

Re: Подключение к БД

Сообщение tanchik » 25 окт 2012, 08:33

rezak90 писал(а):у вас есть доступ к серверу? или заказчику/коллеге можете сказать/попросить сделать WebApi. На это уйдёт пару часов, и на то что бы вам получать/отправлять данные уйдёт один час. Главное что бы вы поняли саму архитектуру этого действия.
доступ к серверу у меня есть

tanchik
Сообщения: 57
Зарегистрирован: 21 сен 2012, 15:15

Re: Подключение к БД

Сообщение tanchik » 25 окт 2012, 09:15

а что должно из себя представлять вебАпи?

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Подключение к БД

Сообщение rezak90 » 25 окт 2012, 10:05

Скажем есть такая схема:
На сервере есть бд (mysql), наверняка на сервере есть php/jsp/asp , которые прекрасно умеют подключаться к бд. И так пишем веб-страничку которая будет обращаться к бд. Эта страница принимает post запрос, разбирает его и обращается к бд (например вытягивает нужные вам данные), а на выходе формирует json, который вы в свою очередь парсите со своего приложение.
Например будет выглядить так:
Вы делает post-запрос с андроида на страницу http://server.ru/query.php?all=true а он отдаёт вам json который вы получает в response и распарсивыаете. Всё легко и просто.
З.Ы. если страница на сервере на php то он вытягивает данные с бд и формирует json примерно в не более чем 10 строк. Распарсить json на андроиде тоже займёт 10-15 строк. И всё!
R.id.team
Политика на форуме запрещена

tanchik
Сообщения: 57
Зарегистрирован: 21 сен 2012, 15:15

Re: Подключение к БД

Сообщение tanchik » 25 окт 2012, 10:21

rezak90 писал(а):Скажем есть такая схема:
На сервере есть бд (mysql), наверняка на сервере есть php/jsp/asp , которые прекрасно умеют подключаться к бд. И так пишем веб-страничку которая будет обращаться к бд. Эта страница принимает post запрос, разбирает его и обращается к бд (например вытягивает нужные вам данные), а на выходе формирует json, который вы в свою очередь парсите со своего приложение.
Например будет выглядить так:
Вы делает post-запрос с андроида на страницу http://server.ru/query.php?all=true а он отдаёт вам json который вы получает в response и распарсивыаете. Всё легко и просто.
З.Ы. если страница на сервере на php то он вытягивает данные с бд и формирует json примерно в не более чем 10 строк. Распарсить json на андроиде тоже займёт 10-15 строк. И всё!
ага, сейчас с мыслями соберусь, по-моему, все не так сложно) буду пробовать, если что, буду вопросы задавать

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Подключение к БД

Сообщение rezak90 » 25 окт 2012, 10:39

можно и в skype писать, или icq так будет быстрее ;)
R.id.team
Политика на форуме запрещена

Ответить