Android и MySQL
Re: Android и MySQL
взял код Napalm. работает, в потоке.
а как сделать такое
есть метод , в нем выполняется код, запускаем поток на получение данных из базы, обрабатываем данные из базы
но не в потоке , а в методе , как бы это выполнялось в основном потоке
а как сделать такое
есть метод , в нем выполняется код, запускаем поток на получение данных из базы, обрабатываем данные из базы
но не в потоке , а в методе , как бы это выполнялось в основном потоке
Re: Android и MySQL
Конечно так можно сделать, но и вопрос слишком общий.
По завершению потока вызывайте свой метод и обрабатывайте как хотите. Тем более, я посмотрела, ты курсор получаешь. Передавай его в любой метод и обрабатывай.
По завершению потока вызывайте свой метод и обрабатывайте как хотите. Тем более, я посмотрела, ты курсор получаешь. Передавай его в любой метод и обрабатывай.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Android и MySQL
на андроиде это выглядит как изврашение, но видно придется привыкать к таким подходам...Foenix писал(а):Конечно так можно сделать, но и вопрос слишком общий.
По завершению потока вызывайте свой метод и обрабатывайте как хотите. Тем более, я посмотрела, ты курсор получаешь. Передавай его в любой метод и обрабатывай.
решил через AsyncTask, но у меня там не курсор, я с mssql работаю тока через хранимки
кому интересно
Код: Выделить всё
class Verify extends AsyncTask<String, Integer, String> {
private String x;
@Override
protected String doInBackground(String... params) {
java.sql.Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(Singleton.getUrl(), Singleton.getUserName(), Singleton.getPassword());
String[] s = params;
CallableStatement proc = (CallableStatement) conn.prepareCall("{ call verify('" + s[0] + "','" + s[1] + "','" + "xxxx" + "')}");
ResultSet rs = proc.executeQuery();
rs.next();
x = rs.getString("cod");
rs.close();
conn.close();
} catch (InstantiationException | IllegalAccessException | ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
return x;
}
@Override
protected void onPostExecute(String aVoid) {
super.onPostExecute(aVoid);
TextView tv = (TextView) findViewById(R.id.login);
tv.setText(aVoid);
intent = new Intent(context, ServicePage2.class);
startActivity(intent);
}
}
}
Re: Android и MySQL
я не поняла, в чем обработка состоит? курсор из одной строки, состощей из одного поля, что ли?
я имела ввиду resultset - Это почти что курсор (работать с ним нужно так же).
я имела ввиду resultset - Это почти что курсор (работать с ним нужно так же).
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Android и MySQL
если иметь это в виду "Это почти что курсор" то тут нет проблем.Foenix писал(а):я не поняла, в чем обработка состоит? курсор из одной строки, состощей из одного поля, что ли?
я имела ввиду resultset - Это почти что курсор (работать с ним нужно так же).
в примере одна строка - это только пример
я подразумевал такое
есть метод, в нем идут какие-то вычисления, для этих вычислений надо обратиться к базе, получить данные , у же с ними продолжить вычисления, далее ещё раз обращение к базе (к другим таблицам)
т.е. "линейное программирование", тут такого неполучить.
Re: Android и MySQL
да как же это не получить??? что за ерунда! Если у тебя база на сервере - пожалуйста, отправляй как будто с десктопа любой запрос - хоть хранимку, хоть выборку из вьюва, хоть просто запрос к таблице и точно так же обрабатывай результат. Или мы друг друга не понимаем. Всю жизнь работала с бд и тут работаю и с удаленной и с локальной - нет никаких проблем.assan писал(а):если иметь это в виду "Это почти что курсор" то тут нет проблем.Foenix писал(а):я не поняла, в чем обработка состоит? курсор из одной строки, состощей из одного поля, что ли?
я имела ввиду resultset - Это почти что курсор (работать с ним нужно так же).
в примере одна строка - это только пример
я подразумевал такое
есть метод, в нем идут какие-то вычисления, для этих вычислений надо обратиться к базе, получить данные , у же с ними продолжить вычисления, далее ещё раз обращение к базе (к другим таблицам)
т.е. "линейное программирование", тут такого неполучить.
В чем задача-то состоит конкретно?
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Android и MySQL
вот по этому коду
запустить эту часть в основном потоке мне не удалось
к примеру в основном потоке, в методе, мне нужно получить данные из базы, обработать их на основании обработанных данных изменить переменные медота, получить новые данные и прочее. т.е. преже чем продолжать мне надо дождаться данных из базы, а тут получается зпустил поток и продолжается выполнение дальше, а данных еще нет. они есть потом, но доступ к ним еще надо как-то сделать, конечно можно частично обработать полученные данные в потоке, но получить/ изменить переменные из вызвавшего класса просто так не получится..
я надеюсь понятно объяснил мои хотелки? может быть я не совсем правильно использую что-то?
при использовании SQLite
одно следует за другим и я не должен выйти из метода , пока всего его не пройду.
Код: Выделить всё
package ru.test.mysqltest;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
Button input;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
input = (Button) findViewById(R.id.doIt);
input.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
void connect() {
try {
Log.d("My Logs", "Запускаем поток");
Thread t = new Thread(new Runnable() {
public void run() {
Connection conn = null;
String userName = "login";
String password = "pass";
String url = "jdbc:mysql://mysql-srv29435.ht-systems.ru:3306/bd_name";
try {
System.err.println("Подключаемся");
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
conn = DriverManager.getConnection(url, userName, password);
Log.d("MyLog", "Получилось");
Statement s = null;
s = conn.createStatement();
s.executeQuery("Select from users");
ResultSet rs = null;
rs = s.getResultSet();
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) {
System.err.println("Не получилось");
e.printStackTrace();
}
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
t.start();
} catch (Exception e) {
e.printStackTrace();
System.err.println("Не вышло");
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.doIt:
Toast.makeText(this, "Вызвал", Toast.LENGTH_SHORT).show();
connect();
break;
default:
break;
}
}
}
Код: Выделить всё
try {
conn = DriverManager.getConnection(url, userName, password);
Log.d("MyLog", "Получилось");
Statement s = null;
s = conn.createStatement();
s.executeQuery("Select from users");
ResultSet rs = null;
rs = s.getResultSet();
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) {
System.err.println("Не получилось");
e.printStackTrace();
}
я надеюсь понятно объяснил мои хотелки? может быть я не совсем правильно использую что-то?
при использовании SQLite
Код: Выделить всё
private void xxx(String... params){
String s1;
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(Singleton.getDbFile(), null);
тут чт-то делается
String sql = "SELECT * FROM tbl where num=?";
String[] s=params;
Cursor c = db.rawQuery(sql, new String[]{s[0]});
StringBuilder sb=new StringBuilder();
if (c.moveToFirst()) {
do {
sb.append(c.getString(0)).append(",").append(c.getString(1)).append(";");
} while (c.moveToNext());
}
c.close();
s1=sb.toString();
тут что-то с s1.....
меняю переменный класса вызвавшего метод xxx
String sql = "SELECT * FROM tbl where num=?";
String[] s=params;
Cursor c = db.rawQuery(sql, new String[]{s[1]});
StringBuilder sb=new StringBuilder();
if (c.moveToFirst()) {
do {
sb.append(c.getString(0)).append(",").append(c.getString(1)).append(";");
} while (c.moveToNext());
}
c.close();
s1=sb.toString();
db.close;
ещё раз меняю переменный класса вызвавшего метод xxx
}
Re: Android и MySQL
пробежалась по коду (времени особо нет), все у тебя хорошо, хотя и немножко каша в голове.
Вот смотри. Допустим у тебя авторизация и ты выбираешь где-то на сервере из базы логин и пароли (сравниваешь). Да, это все в потоке. но у потоков есть такая фишка как хэндлеры. Т.е. это такие штуки, которые как сигналы из потока в UI - можно посылать. "Я сделал-то-то, я уже сделал то-то и то-то." Я этими хэндлерами посылаю из потока какую угодно инфу в основной, например, об ошибках (если поток отправил что-то базе и получил ошибку).
Так вот. ЭТо допустим в потоке, когда с сервера приходит ответ, что пароль окей:
вот код метода потока, который посылает сообщения, но можно и просто без метода - посылать
Т.е. я в бандл сую то, что мне нужно потом в UI разобрать и получить инфу, например, у меня крутится спиннер во время авторизации, и я пользователю ничего делать не даю в основном потоке пока не сверится пароль.
А в основном потоке объявляю хэндлер (который указывается при создании потока)
Там можно любую логику писать, это все примет UI и покажет или дальше зашлет какую-то обработку.
Вот так можно дождаться окончания работы потока в UI.
Но если допустим просто скачиваются данные какие-то, то не нужно блокировать интерфейс, ясное дело.
Но время окончания приема данных - будет зафиксировано и можно начинать их обработку.
А нужно тебе еще как-то их обработать, можно даже в потоке это делать.
Допустим мне пришел курсор (резалтсет), ну какие проблемы? делаю в потоке, попутно оттуда посылая сообщения в UI о ходе процесса:
tblFirma - это у меня класс, где есть метод insertRSData1, я в этом методе принимаю резалтсет и обрабатываю его как мне нужно (то, о чем ты спрашивал с самого начала).
Поток выдели в отдельный класс, сделай ему конструктор, который будет данные принимать на вход какие тебе нужно (например, пароль из диалога с пользователем, хэндлер, еще что-то)...
Вот смотри. Допустим у тебя авторизация и ты выбираешь где-то на сервере из базы логин и пароли (сравниваешь). Да, это все в потоке. но у потоков есть такая фишка как хэндлеры. Т.е. это такие штуки, которые как сигналы из потока в UI - можно посылать. "Я сделал-то-то, я уже сделал то-то и то-то." Я этими хэндлерами посылаю из потока какую угодно инфу в основной, например, об ошибках (если поток отправил что-то базе и получил ошибку).
Так вот. ЭТо допустим в потоке, когда с сервера приходит ответ, что пароль окей:
Код: Выделить всё
while (rs.next()) {
...
this.SendMsg(1,"Пароль верный");
}
Код: Выделить всё
private void SendMsg(int fl, String msg) {
Message messageToSpinner = mHandler.obtainMessage();
Bundle messageData = new Bundle();
messageToSpinner.what = fl;
messageData.putString("text", msg);
messageData.putInt("doAfter", doAfter);
messageToSpinner.setData(messageData);
mHandler.sendMessage(messageToSpinner);
}
А в основном потоке объявляю хэндлер (который указывается при создании потока)
Код: Выделить всё
hP = new Handler() {// При проверке пароля
public void handleMessage(android.os.Message msg) {
if (msg.what == 1) {// Правильный пароль
spinner.dismiss();
...
Вот так можно дождаться окончания работы потока в UI.
Но если допустим просто скачиваются данные какие-то, то не нужно блокировать интерфейс, ясное дело.
Но время окончания приема данных - будет зафиксировано и можно начинать их обработку.
А нужно тебе еще как-то их обработать, можно даже в потоке это делать.
Допустим мне пришел курсор (резалтсет), ну какие проблемы? делаю в потоке, попутно оттуда посылая сообщения в UI о ходе процесса:
Код: Выделить всё
rs = st.executeQuery(queryString);
this.SendMsg(2, "Сохранение списка клиентов в базу данных..");
tblFirma.insertRSData1(rs);
rs.close();
Поток выдели в отдельный класс, сделай ему конструктор, который будет данные принимать на вход какие тебе нужно (например, пароль из диалога с пользователем, хэндлер, еще что-то)...
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Android и MySQL
2Foenix
спасибо за предложенные решения, они очень подходят под те случаи , что ты описала
если в андроиде так решается - будутак и делать,
просто есть случаи когда требуется однопоточное програмирование, "линейное", "последовательное"
когда таким программирования и код читабельнее и проще.
да и таже авторизация, если отклик сервера гарантированно "мнгновенный" зачем лишние навороты делать, а если этот сервер повис - для этих целей иключения существуют. всё однопоточно решается
спасибо за предложенные решения, они очень подходят под те случаи , что ты описала
если в андроиде так решается - будутак и делать,
просто есть случаи когда требуется однопоточное програмирование, "линейное", "последовательное"
когда таким программирования и код читабельнее и проще.
да и таже авторизация, если отклик сервера гарантированно "мнгновенный" зачем лишние навороты делать, а если этот сервер повис - для этих целей иключения существуют. всё однопоточно решается
Re: Android и MySQL
забудь ты про это! не старый небось поди так говорить, это лишь твоя привычкаassan писал(а): когда таким программирования и код читабельнее и проще.
просто разве не интереснее понять то, что делает система, что задумывал разработчик, почему сделал имено так а не иначе? А когда с удовольствием это делаешь, то результат уже будет радостнее
ахаха, мгновенный-гарантированноassan писал(а): да и таже авторизация, если отклик сервера гарантированно "мнгновенный" зачем лишние навороты делать, а если этот сервер повис - для этих целей иключения существуют. всё однопоточно решается
ты не понимаешь. Это универсальный инструмент, им руководит операционка. Винды руководят по-своему, андроид по-своему, ты сейчас пароль проверяешь, завтра будешь два миллиона паролей сверять, послезавтра как я 90 тыс записей тянуть, а у них - "забота о пользователе!" Нельзя все что ты видел на виндах переносить сюда - от интерфейса до внутренностей.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Android и MySQL
в общем надо попрощаться с хотелками и воспринимать данность как истинуFoenix писал(а):ахаха, мгновенный-гарантированно
ты не понимаешь. Это универсальный инструмент, им руководит операционка. Винды руководят по-своему, андроид по-своему, ты сейчас пароль проверяешь, завтра будешь два миллиона паролей сверять, послезавтра как я 90 тыс записей тянуть, а у них - "забота о пользователе!" Нельзя все что ты видел на виндах переносить сюда - от интерфейса до внутренностей.
я не против, главное лучше узнать эту данность.
2Foenix! а ты не пробовала работать через wss протокол? с сервером на котором к примеру tomcat?
Re: Android и MySQL
нет, только через jdbc и http, что такое wss протокол даже не знаю
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Android и MySQL
websocketsFoenix писал(а):нет, только через jdbc и http, что такое wss протокол даже не знаю
протокол поверх http.
wss -шифрованный
ws без шифрования
оснвные преимущества - очень маленький трафик, служебная информация около 10 байт, пониженная нагрузка на сервер.
и очень основное качество - инициатором передачи может быть сервер. поддерживаб мозила, хром, опера , ie10
после установки соединения , клиенту не надо посылать запросы о наличии новых данных, если что-то изменилось, и это изменение необходимо определённому клиенту - сервер может отправлять эти данные только этому клиенту.
ajax, jax-ws
структура : клиент-сервер(tomcat)-база(mysql,mssql)
я через wss отправлял команду с данными на сервер, сервер формировал запрос к базе(если такая команда) и обратно.
очень рекомендую обратить внимание.
для java есть хорошие библиотеки
- mozilalvfg
- Сообщения: 85
- Зарегистрирован: 10 авг 2013, 18:46
Re: Android и MySQL
Уважаемые форумчане заранее извиняюсь за вопрос, но у меня нет выхода.
17 дней поиска в интернете, перечитывание Вашего форума и куча других, 5 разовая инсталляция win7 x64 sp1, уже даже не помню сколько раз eclipse + ADT перестанавливал, устанавливал и настраивал на ubuntu 12.04
и прописывал в java build path копировал в папку Libs
и у меня никак не получается запустить этот код для android application, на java всё прекрасно работает.
Прошу помощи! неведаю я что делать! база реальная пароли актуальние, находиться в онлайне.
лог
17 дней поиска в интернете, перечитывание Вашего форума и куча других, 5 разовая инсталляция win7 x64 sp1, уже даже не помню сколько раз eclipse + ADT перестанавливал, устанавливал и настраивал на ubuntu 12.04
и прописывал в java build path копировал в папку Libs
и у меня никак не получается запустить этот код для android application, на java всё прекрасно работает.
Прошу помощи! неведаю я что делать! база реальная пароли актуальние, находиться в онлайне.
Код: Выделить всё
package com.example.and;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView tvOut;
Button btnOk;
Button btnCancel;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// найдем View-элементы
tvOut = (TextView) findViewById(R.id.tvOut);
btnOk = (Button) findViewById(R.id.btnOk);
btnCancel = (Button) findViewById(R.id.btnCancel);
// создаем обработчик нажатия
OnClickListener oclBtnOk = new OnClickListener() {
@Override
public void onClick(View v) {
// Меняем текст в TextView (tvOut)
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Driver loading success!");
//у MySQL обязательно есть системная база,
//к ней и будем создавать соединение.
String name = "sergo";
String password = "19781024";
Properties properties = new Properties();
properties.setProperty("user", name);
properties.setProperty("password", password);
properties.setProperty("useUnicode", "true");
properties.setProperty("characterEncoding", "UTF-8");
try {
Connection con =DriverManager.getConnection("jdbc:mysql://39.134.201.14:3306/my_db", properties);
System.out.println("Connected.");
con.close();
System.out.println("Disconnected.");
} catch (SQLException e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
};
// присвоим обработчик кнопке OK (btnOk)
btnOk.setOnClickListener(oclBtnOk);
}
}
08-11 11:58:30.370: I/System.out(1679): Driver loading success!
08-11 11:58:30.430: W/System.err(1679): com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
08-11 11:58:30.430: W/System.err(1679): The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
08-11 11:58:30.430: W/System.err(1679): at java.lang.reflect.Constructor.constructNative(Native Method)
08-11 11:58:30.430: W/System.err(1679): at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
08-11 11:58:30.430: W/System.err(1679): at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
08-11 11:58:30.430: W/System.err(1679): at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1121)
08-11 11:58:30.430: W/System.err(1679): at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:357)
08-11 11:58:30.440: W/System.err(1679): at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2482)
08-11 11:58:30.440: W/System.err(1679): at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2519)
08-11 11:58:30.440: W/System.err(1679): at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2304)
08-11 11:58:30.440: W/System.err(1679): at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:834)
08-11 11:58:30.440: W/System.err(1679): at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
08-11 11:58:30.440: W/System.err(1679): at java.lang.reflect.Constructor.constructNative(Native Method)
08-11 11:58:30.440: W/System.err(1679): at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
08-11 11:58:30.440: W/System.err(1679): at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
08-11 11:58:30.450: W/System.err(1679): at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:416)
08-11 11:58:30.450: W/System.err(1679): at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:346)
08-11 11:58:30.450: W/System.err(1679): at java.sql.DriverManager.getConnection(DriverManager.java:180)
08-11 11:58:30.450: W/System.err(1679): at com.example.and.MainActivity$1.onClick(MainActivity.java:56)
08-11 11:58:30.450: W/System.err(1679): at android.view.View.performClick(View.java:2485)
08-11 11:58:30.450: W/System.err(1679): at android.view.View$PerformClick.run(View.java:9080)
08-11 11:58:30.450: W/System.err(1679): at android.os.Handler.handleCallback(Handler.java:587)
08-11 11:58:30.450: W/System.err(1679): at android.os.Handler.dispatchMessage(Handler.java:92)
08-11 11:58:30.461: W/System.err(1679): at android.os.Looper.loop(Looper.java:130)
08-11 11:58:30.461: W/System.err(1679): at android.app.ActivityThread.main(ActivityThread.java:3683)
08-11 11:58:30.461: W/System.err(1679): at java.lang.reflect.Method.invokeNative(Native Method)
08-11 11:58:30.461: W/System.err(1679): at java.lang.reflect.Method.invoke(Method.java:507)
08-11 11:58:30.461: W/System.err(1679): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
08-11 11:58:30.461: W/System.err(1679): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
08-11 11:58:30.461: W/System.err(1679): at dalvik.system.NativeStart.main(Native Method)
08-11 11:58:30.461: W/System.err(1679): Caused by: java.net.SocketException: Permission denied
08-11 11:58:30.470: W/System.err(1679): at org.apache.harmony.luni.platform.OSNetworkSystem.socket(Native Method)
08-11 11:58:30.470: W/System.err(1679): at dalvik.system.BlockGuard$WrappedNetworkSystem.socket(BlockGuard.java:335)
08-11 11:58:30.470: W/System.err(1679): at org.apache.harmony.luni.net.PlainSocketImpl.create(PlainSocketImpl.java:216)
08-11 11:58:30.470: W/System.err(1679): at java.net.Socket.startupSocket(Socket.java:698)
08-11 11:58:30.470: W/System.err(1679): at java.net.Socket.<init>(Socket.java:263)
08-11 11:58:30.470: W/System.err(1679): at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:259)
08-11 11:58:30.480: W/System.err(1679): at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:307)
08-11 11:58:30.480: W/System.err(1679): ... 23 more
Последний раз редактировалось mozilalvfg 11 авг 2013, 17:02, всего редактировалось 1 раз.
Из средств, расширяющих сознание, я признаю только книги и немного пива!
____________________________________________________________________
IntelliJ IDEA 12. Win 7 x64 sp1
KSWEB: сервер + PHP + MySQL FREE
____________________________________________________________________
IntelliJ IDEA 12. Win 7 x64 sp1
KSWEB: сервер + PHP + MySQL FREE
Re: Android и MySQL
Привет! а на чем запускаешь - эмулятор, устройство?
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Android и MySQL
2. Все эти коннекции нужно делать в отдельном потоке. Так не пойдет.
Читай форум, тему, я уже много раз отвечала, писала по пунктам, и другие тоже.
Другие варианты просто уже переписывать лень.
Читай форум, тему, я уже много раз отвечала, писала по пунктам, и другие тоже.
Другие варианты просто уже переписывать лень.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
- mozilalvfg
- Сообщения: 85
- Зарегистрирован: 10 авг 2013, 18:46
Re: Android и MySQL
Благодарю всех!!! , я докопался. Для таких новичков мне помогло добавить в Build Path проекта, и переменную со ссылкой на jar в [Window -> Preferences -> Java -> Build Path -> Classpath Variables] и всё заработало.
"Foenix" спасибо я обязательно прислушаюсь к Вашей рекомендации, я перепробовал кучу кода и с отдельним потоком и без него, мне не получалось добиться главного что бы был конект.
Но ТЕПЕРЬ ОН У МЕНЯ ЕСТЬ. Пошол пить 100 грам. марафон для меня закончился.
Р.С. Всем спасибо!
"Foenix" спасибо я обязательно прислушаюсь к Вашей рекомендации, я перепробовал кучу кода и с отдельним потоком и без него, мне не получалось добиться главного что бы был конект.
Но ТЕПЕРЬ ОН У МЕНЯ ЕСТЬ. Пошол пить 100 грам. марафон для меня закончился.
Р.С. Всем спасибо!
Из средств, расширяющих сознание, я признаю только книги и немного пива!
____________________________________________________________________
IntelliJ IDEA 12. Win 7 x64 sp1
KSWEB: сервер + PHP + MySQL FREE
____________________________________________________________________
IntelliJ IDEA 12. Win 7 x64 sp1
KSWEB: сервер + PHP + MySQL FREE
Re: Android и MySQL
ну поздравляю, я примерно так же радовалась
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
- mozilalvfg
- Сообщения: 85
- Зарегистрирован: 10 авг 2013, 18:46
Re: Android и MySQL
Добрый вечер, прошу помощи , код выше скомпилировал в APK залил на смартфон Sony Xperia android 4.0.4 , запустил видал при подключении к базе ошибку - проверил на VM все работает.
с телефона база пингуеться.
с телефона база пингуеться.
08-11 22:41:49.864: I/System.out(31073): Driver loading success!
08-11 22:41:49.864: I/System.out(31073): Connected.
08-11 22:41:49.873: D/My Logs(31073): Подключаемся
08-11 22:41:49.913: W/System.err(31073): com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
08-11 22:41:49.913: W/System.err(31073): The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
08-11 22:41:49.933: W/System.err(31073): at java.lang.reflect.Constructor.constructNative(Native Method)
08-11 22:41:49.933: W/System.err(31073): at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
08-11 22:41:49.933: W/System.err(31073): at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
08-11 22:41:49.933: W/System.err(31073): at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1121)
08-11 22:41:49.933: W/System.err(31073): at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:357)
08-11 22:41:49.933: W/System.err(31073): at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2482)
08-11 22:41:49.933: W/System.err(31073): at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2519)
08-11 22:41:49.933: W/System.err(31073): at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2304)
08-11 22:41:49.933: W/System.err(31073): at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:834)
08-11 22:41:49.933: W/System.err(31073): at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
08-11 22:41:49.933: W/System.err(31073): at java.lang.reflect.Constructor.constructNative(Native Method)
08-11 22:41:49.933: W/System.err(31073): at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
08-11 22:41:49.933: W/System.err(31073): at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
08-11 22:41:49.933: W/System.err(31073): at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:416)
08-11 22:41:49.933: W/System.err(31073): at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:346)
08-11 22:41:49.933: W/System.err(31073): at java.sql.DriverManager.getConnection(DriverManager.java:175)
08-11 22:41:49.943: W/System.err(31073): at com.example.testprog.MainActivity$1.onClick(MainActivity.java:93)
08-11 22:41:49.943: W/System.err(31073): at android.view.View.performClick(View.java:3534)
08-11 22:41:49.943: W/System.err(31073): at android.view.View$PerformClick.run(View.java:14263)
08-11 22:41:49.943: W/System.err(31073): at android.os.Handler.handleCallback(Handler.java:605)
08-11 22:41:49.943: W/System.err(31073): at android.os.Handler.dispatchMessage(Handler.java:92)
08-11 22:41:49.943: W/System.err(31073): at android.os.Looper.loop(Looper.java:137)
08-11 22:41:49.943: W/System.err(31073): at android.app.ActivityThread.main(ActivityThread.java:4441)
08-11 22:41:49.943: W/System.err(31073): at java.lang.reflect.Method.invokeNative(Native Method)
08-11 22:41:49.943: W/System.err(31073): at java.lang.reflect.Method.invoke(Method.java:511)
08-11 22:41:49.943: W/System.err(31073): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
08-11 22:41:49.943: W/System.err(31073): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
08-11 22:41:49.943: W/System.err(31073): at dalvik.system.NativeStart.main(Native Method)
08-11 22:41:49.943: W/System.err(31073): Caused by: java.net.SocketException: android.os.NetworkOnMainThreadException
08-11 22:41:49.943: W/System.err(31073): at com.mysql.jdbc.StandardSocketFactory.unwrapExceptionToProperClassAndThrowIt(StandardSocketFactory.java:410)
08-11 22:41:49.943: W/System.err(31073): at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:271)
08-11 22:41:49.943: W/System.err(31073): at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:307)
08-11 22:41:49.943: W/System.err(31073): ... 23 more
Из средств, расширяющих сознание, я признаю только книги и немного пива!
____________________________________________________________________
IntelliJ IDEA 12. Win 7 x64 sp1
KSWEB: сервер + PHP + MySQL FREE
____________________________________________________________________
IntelliJ IDEA 12. Win 7 x64 sp1
KSWEB: сервер + PHP + MySQL FREE
- mozilalvfg
- Сообщения: 85
- Зарегистрирован: 10 авг 2013, 18:46
Re: Android и MySQL
Посмотрите пожалуйста эту статью http://devcolibri.com/1486 для универсальности и многопользовательского приложения подойдёт?
зделал всё как там описываться (пришлось инсталлировать Android Studio) но результат есть. Всем новичкам рекомендую по вопросу "MySql+Android" смотреть туда.
Уважаемые гуру, Android Studio мне не очень понравилась вот здорово било бы переписать статью для Вашего сайта только на Eclips
присоеденяю проект на Android Studio + все необходимие файли.
зделал всё как там описываться (пришлось инсталлировать Android Studio) но результат есть. Всем новичкам рекомендую по вопросу "MySql+Android" смотреть туда.
Уважаемые гуру, Android Studio мне не очень понравилась вот здорово било бы переписать статью для Вашего сайта только на Eclips
присоеденяю проект на Android Studio + все необходимие файли.
- Вложения
-
- AndroidAndMySQL.zip
- (190.98 КБ) 211 скачиваний
Из средств, расширяющих сознание, я признаю только книги и немного пива!
____________________________________________________________________
IntelliJ IDEA 12. Win 7 x64 sp1
KSWEB: сервер + PHP + MySQL FREE
____________________________________________________________________
IntelliJ IDEA 12. Win 7 x64 sp1
KSWEB: сервер + PHP + MySQL FREE