Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.91/23: Рейтинг темы: голосов - 23, средняя оценка - 4.91
NapalmRain
41 / 41 / 6
Регистрация: 18.05.2010
Сообщений: 655
1

Работа с MySQL

14.04.2013, 20:00. Просмотров 4137. Ответов 35
Метки нет (Все метки)

Доброго всем времени суток!

На мобильные системы не программировал никогда.
Есть большой опыт программирования на Delphi и С++, но сейчас возникла необходимость написать программу пом смартфон. Смысл программки достаточно прост, нужно просто обратиться к удалённому MySQL серверу, получить с него данные и отобразить. В качестве среды разработки буду использовать SDK гугловкий.

Прошу подсказать либо литературу по этому вопросу, либо может кусочек кода, что бы было понятно, куда вообще нужно копать.

Заранее благодарю за любой совет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2013, 20:00
Ответы с готовыми решениями:

Работа с БД MySQL (MySQL + BCB 6)
Почитал все что нашел в поиске... все сделал, как писали умные люди.. все...

Работа с MYSQL
Подскажите пожалуйста, нужно написать программу под андроид на XE6 up1 Delphi....

Работа с MySQL
Привет, народ! Помогите побороть барьер в виде "работы с БД", никак не могу...

Работа с MySql
Всем привет! Прошу помощи. Попробовал перейти с акцеса на MySql, но появился...

Работа с mysql
Пишет на моменте выполнения запроса это bool(false) Fatal error: Uncaught...

35
c4sp3r
0x5B4C322291BD52AE
94 / 94 / 0
Регистрация: 04.03.2013
Сообщений: 295
18.04.2013, 22:29 21
NapalmRain, ты в проекте который тестируешь в манифесте прописал права на интернет?
Просто у меня сейчас кроме UnknownHostException больше нечего вот и хотел проверить.
0
NapalmRain
41 / 41 / 6
Регистрация: 18.05.2010
Сообщений: 655
18.04.2013, 22:38  [ТС] 22
c4sp3r, можно немного поподробнее про манифест? Я в этом, мягко говоря, плохо понимаю.
0
c4sp3r
0x5B4C322291BD52AE
94 / 94 / 0
Регистрация: 04.03.2013
Сообщений: 295
18.04.2013, 22:42 23
NapalmRain, у тебя в корне проекта есть AndroidManifest.xml добавь туда права на интернет:

XML
1
<uses-permission android:name="android.permission.INTERNET"/>
пример:

AndroidManifest.xml
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ru.example.rainsystem"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="10" />
    
    <uses-permission android:name="android.permission.INTERNET"/>
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="ru.example.rainsystem.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 
</manifest>


и попробуй не забудь только указать логин и пароль а также хост в MainActivity.java.
1
NapalmRain
41 / 41 / 6
Регистрация: 18.05.2010
Сообщений: 655
18.04.2013, 23:05  [ТС] 24
Добавил в манифест доступ к интернету, ситуация, увы, не изменилась.
0
c4sp3r
0x5B4C322291BD52AE
94 / 94 / 0
Регистрация: 04.03.2013
Сообщений: 295
18.04.2013, 23:10 25
NapalmRain, в логах тоже самое?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.04.2013, 23:11 26
Логи нужно смотреть в вкладке LogCat если что.
0
NapalmRain
41 / 41 / 6
Регистрация: 18.05.2010
Сообщений: 655
18.04.2013, 23:55  [ТС] 27
V0v1k, да, я знаю.
Да, там тоже самое. тот же набор системных ошибок.
log
04-18 19:54:09.895: W/dalvikvm(329): VFY: unable to find class referenced in signature (Ljavax/naming/Reference
04-18 19:54:09.895: I/dalvikvm(329): Could not find method javax.naming.Reference.get, referenced from method com.mysql.jdbc.ConnectionPropertiesImpl$ConnectionProperty.initializeFrom
04-18 19:54:09.905: W/dalvikvm(329): VFY: unable to resolve virtual method 11693: Ljavax/naming/Reference;.get (Ljava/lang/StringLjavax/naming/RefAddr;
04-18 19:54:09.905: D/dalvikvm(329): VFY: replacing opcode 0x6e at 0x0004
04-18 19:54:09.956: D/dalvikvm(329): VFY: dead code 0x0007-0013 in Lcom/mysql/jdbc/ConnectionPropertiesImpl$ConnectionProperty;.initializeFrom (Ljavax/naming/ReferenceV
04-18 19:54:09.956: W/dalvikvm(329): VFY: unable to find class referenced in signature (Ljavax/naming/Reference
04-18 19:54:09.975: E/dalvikvm(329): Could not find class 'javax.naming.StringRefAddr', referenced from method com.mysql.jdbc.ConnectionPropertiesImpl$ConnectionProperty.storeTo
04-18 19:54:09.975: W/dalvikvm(329): VFY: unable to resolve new-instance 982 (Ljavax/naming/StringRefAddr in Lcom/mysql/jdbc/ConnectionPropertiesImpl$ConnectionProperty;
04-18 19:54:09.975: D/dalvikvm(329): VFY: replacing opcode 0x22 at 0x0006
04-18 19:54:09.975: D/dalvikvm(329): VFY: dead code 0x0008-0019 in Lcom/mysql/jdbc/ConnectionPropertiesImpl$ConnectionProperty;.storeTo (Ljavax/naming/ReferenceV
04-18 19:54:10.135: D/dalvikvm(329): GC_CONCURRENT freed 275K, 50% free 2960K/5831K, external 731K/1038K, paused 11ms+9ms
04-18 19:54:10.895: I/dalvikvm(329): Could not find method java.lang.management.ManagementFactory.getThreadMXBean, referenced from method com.mysql.jdbc.MysqlIO.appendDeadlockStatusInformation
04-18 19:54:10.895: W/dalvikvm(329): VFY: unable to resolve static method 11033: Ljava/lang/management/ManagementFactory;.getThreadMXBean ()Ljava/lang/management/ThreadMXBean;
04-18 19:54:10.895: D/dalvikvm(329): VFY: replacing opcode 0x71 at 0x0079
04-18 19:54:10.895: D/dalvikvm(329): VFY: dead code 0x007c-00a9 in Lcom/mysql/jdbc/MysqlIO;.appendDeadlockStatusInformation (Ljava/lang/String;Ljava/lang/StringBufferV
04-18 19:54:10.916: D/dalvikvm(329): VFY: dead code 0x00ea-020a in Lcom/mysql/jdbc/MysqlIO;.appendDeadlockStatusInformation (Ljava/lang/String;Ljava/lang/StringBufferV
04-18 19:54:11.405: W/System.err(329): com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
04-18 19:54:11.405: W/System.err(329): The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
04-18 19:54:11.414: W/System.err(329): at java.lang.reflect.Constructor.constructNative(Native Method)
04-18 19:54:11.425: W/System.err(329): at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
04-18 19:54:11.465: W/System.err(329): at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
04-18 19:54:11.465: W/System.err(329): at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1121)
04-18 19:54:11.465: W/System.err(329): at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:355)
04-18 19:54:11.465: W/System.err(329): at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2479)
04-18 19:54:11.465: W/System.err(329): at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2516)
04-18 19:54:11.475: W/System.err(329): at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2301)
04-18 19:54:11.475: W/System.err(329): at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:834)
04-18 19:54:11.475: W/System.err(329): at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
04-18 19:54:11.475: W/System.err(329): at java.lang.reflect.Constructor.constructNative(Native Method)
04-18 19:54:11.475: W/System.err(329): at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
04-18 19:54:11.485: W/System.err(329): at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
04-18 19:54:11.485: W/System.err(329): at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:416)
04-18 19:54:11.485: W/System.err(329): at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317)
04-18 19:54:11.485: W/System.err(329): at java.sql.DriverManager.getConnection(DriverManager.java:180)
04-18 19:54:11.494: W/System.err(329): at java.sql.DriverManager.getConnection(DriverManager.java:214)
04-18 19:54:11.504: W/System.err(329): at ru.example.rainsystem.MainActivity.mylogin(MainActivity.java:58)
04-18 19:54:11.504: W/System.err(329): at ru.example.rainsystem.MainActivity.onClick(MainActivity.java:42)
04-18 19:54:11.504: W/System.err(329): at android.view.View.performClick(View.java:2485)
04-18 19:54:11.504: W/System.err(329): at android.view.View$PerformClick.run(View.java:9080)
04-18 19:54:11.515: W/System.err(329): at android.os.Handler.handleCallback(Handler.java:587)
04-18 19:54:11.525: W/System.err(329): at android.os.Handler.dispatchMessage(Handler.java:92)
04-18 19:54:11.525: W/System.err(329): at android.os.Looper.loop(Looper.java:123)
04-18 19:54:11.525: W/System.err(329): at android.app.ActivityThread.main(ActivityThread.java:3683)
04-18 19:54:11.525: W/System.err(329): at java.lang.reflect.Method.invokeNative(Native Method)
04-18 19:54:11.525: W/System.err(329): at java.lang.reflect.Method.invoke(Method.java:507)
04-18 19:54:11.525: W/System.err(329): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-18 19:54:11.535: W/System.err(329): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-18 19:54:11.535: W/System.err(329): at dalvik.system.NativeStart.main(Native Method)
04-18 19:54:11.545: W/System.err(329): Caused by: java.net.ConnectException: localhost/127.0.0.1:3306 - Connection refused
04-18 19:54:11.575: W/System.err(329): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:207)
04-18 19:54:11.575: W/System.err(329): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
04-18 19:54:11.575: W/System.err(329): at java.net.Socket.startupSocket(Socket.java:705)
04-18 19:54:11.585: W/System.err(329): at java.net.Socket.<init>(Socket.java:263)
04-18 19:54:11.595: W/System.err(329): at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:259)
04-18 19:54:11.615: W/System.err(329): at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:305)
04-18 19:54:11.615: W/System.err(329): ... 25 more
04-18 19:54:11.935: D/dalvikvm(329): GC_CONCURRENT freed 215K, 48% free 3155K/6023K, external 731K/1038K, paused 6ms+17ms
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
19.04.2013, 00:26 28
Цитата Сообщение от NapalmRain Посмотреть сообщение
Caused by: java.net.ConnectException: localhost/127.0.0.1:3306 - Connection refused
сервер отклонил конекшен.
1
NapalmRain
41 / 41 / 6
Регистрация: 18.05.2010
Сообщений: 655
19.04.2013, 20:58  [ТС] 29
Возвращаюсь к вопросу о том, что я что-то не правильно подключаю...

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
try {
  Log.d("My Logs", "Подключаем драйвер");
  Class.forName("com.mysql.jdbc.Driver").newInstance();
  Log.d("My Logs", "Подключили");                  
} catch (InstantiationException e) {
  Log.d("My Logs", "не подключили");
  e.printStackTrace();
} catch (IllegalAccessException e) {
  Log.d("My Logs", "Не подключили, правов маловато");
  e.printStackTrace();
} catch (ClassNotFoundException e) {
  Log.d("My Logs", "Не подключили класс не найден");
  e.printStackTrace();
}
04-19 16:17:48.274: D/My Logs(470): Запускаем поток
04-19 16:17:48.305: D/My Logs(470): Подключаем драйвер
04-19 16:17:48.324: D/My Logs(470): Не подключили класс не найден
Подключал так
import>file system>указал jar файл библиотеки
Java
1
2
3
4
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
19.04.2013, 21:10 30
Цитата Сообщение от c4sp3r Посмотреть сообщение
тебе нужно просто скопировать его в папку libs
...

Добавлено через 3 минуты
в том проекте, что вы выкладывали, не было такой проблемы.
0
NapalmRain
41 / 41 / 6
Регистрация: 18.05.2010
Сообщений: 655
19.04.2013, 22:00  [ТС] 31
А, понял, косяк в коннекторе, видимо, Ставил другую версию, а в ней класс называется иначе, подключил последнюю версию, эта ошибка исчезла.
Всё приятно преобразилось...
Код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
try {
  Log.d("My Logs", "Подключаем драйвер");
  Class.forName("com.mysql.jdbc.Driver").newInstance();
  Log.d("My Logs", "Подключили");                   
} catch (InstantiationException e) {
  Log.d("My Logs", "не подключили");
  e.printStackTrace();
} catch (IllegalAccessException e) {
  Log.d("My Logs", "Не подключили, правов маловато");
  e.printStackTrace();
} catch (ClassNotFoundException e) {
  Log.d("My Logs", "Не подключили класс не найден");
  e.printStackTrace();
}
try {
  Log.d("My Logs", "Подключаемся");                    
  conn = DriverManager.getConnection(url, userName, password);
  Log.d("MyLog", "Подключилось");
  Statement s = null;
  s = conn.createStatement();
  Log.d("MyLog", "Отправляем запрос");
  s.executeQuery("Select from users");
  Log.d("MyLog", "Отправили");
  ResultSet rs = null;
  Log.d("MyLog", "Получаем ответ");
  rs = s.getResultSet();
  Log.d("MyLog", "Получили");
  while (rs.next()) {
    int idVal = rs.getInt("id");
    String passN = rs.getString("pass");
    String loginN = rs.getString("login");
    Log.d("MyLog", "логин"+loginN);
  }
  rs.close();
  s.close();
} catch (SQLException e) {
  Log.d("My Logs", "Не получилось");
  e.printStackTrace();
}
И лог:
04-19 17:45:08.264: D/My Logs(372): Подключаем драйвер
04-19 17:45:08.344: D/My Logs(372): Подключили
04-19 17:45:08.344: D/My Logs(372): Подключаемся
04-19 17:45:15.196: D/MyLog(372): Подключилось
04-19 17:45:15.196: D/MyLog(372): Отправляем запрос
04-19 17:45:15.317: D/My Logs(372): Не получилось
Мы уже пробились до сервера,
хотелось бы понять, почему не получается отправить запрос на сервер
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
19.04.2013, 22:07 32
а какой екзепшен?
0
NapalmRain
41 / 41 / 6
Регистрация: 18.05.2010
Сообщений: 655
19.04.2013, 22:11  [ТС] 33
Всё, я его победил!

Я просто криворучка, в запросе вместо SELECT * FROM написал SELECT FROM, вот и вся беда.

Получил информацию, вывел её в логи. Теперь надо дальше разрабатывать дальше идею.

Огромное всем спасибо за помощь!
0
Zevill
0 / 0 / 0
Регистрация: 21.04.2013
Сообщений: 1
24.04.2013, 18:14 34
Если не жалко, выложи получившийся проект.
Или скинь на мыло evil070@mail.ru
Буду очень признателен!
0
NapalmRain
41 / 41 / 6
Регистрация: 18.05.2010
Сообщений: 655
25.04.2013, 15:35  [ТС] 35
Zevill, хорошо. Постараюсь выложить сегодня-завтра
1
NapalmRain
41 / 41 / 6
Регистрация: 18.05.2010
Сообщений: 655
06.05.2013, 09:44  [ТС] 36
Вот мой тестовый проект, если кому пригодится
http://yadi.sk/d/-OL7nnqU4a2em
1
06.05.2013, 09:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2013, 09:44

Работа с Mysql
Всем Привет! Задача сделать программу в которую нужно вводить какие то данные,...

Работа с БД MySQL
Работа с БД MySQL в PHP Вступление Приветствую. В последнее время у...

C++ работа с mysql
По информатике задали РГР: написать программу с БД ( можно выбрать любую ). ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru