Подтвердить что ты не робот

Android: Поддерживается ли JDBC на устройствах Android?

Я делаю приложение Android с помощью JDBC для отправки данных в базу данных без использования каких-либо веб-сервисов. Я сделал эксперимент с использованием эмулятора Android 2.2, и я могу отправить данные в MySQL DB (LOCALHOST). После этого я попытался отправить с помощью устройства Android 2.2, я изменил путь от jdbc:mysql://10.0.2.2:3306/ с jdbc:mysql://xx.xx.xx.xx:3306/.

xx.xx.xx.xx от ipconfig моей машины localhost. Но он не работает в устройстве. В чем может быть причина.

Основные сомнения:

  • Поддерживаются ли в настоящее время устройства Android JDBC?
  • Будет ли поддержка Android 2.2 JDBC?
  • Если поддерживается, какие версии Android будут поддерживать JDBC?
4b9b3361

Ответ 1

Да. Не забудьте указать код соединения JDBC в AsyncTask,  иначе вы будете BURN BURN BURN!

Ответ 2

Загрузите MySQL JDBC Connector 3.0.17 и добавьте его в путь сборки проекта Android.

import java.sql.Connection;



import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import android.app.Activity;

import android.os.Bundle; import android.widget.TextView;

public class MysqlSample01Activity extends Activity {

private static final String url = "jdbc:mysql://<server>:<port>/<database>";
private static final String user = "<username>";
private static final String pass = "<password>";

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    testDB();
}

public void testDB() {
    TextView tv = (TextView)this.findViewById(R.id.text_view);
    try {
        Class.forName("com.mysql.jdbc.Driver");
        Connection con = DriverManager.getConnection(url, user, pass);
        /* System.out.println("Database connection success"); */

        String result = "Database connection success\n";
        Statement st = con.createStatement();
        ResultSet rs = st.executeQuery("select * from table_name");
        ResultSetMetaData rsmd = rs.getMetaData();

        while(rs.next()) {
            result += rsmd.getColumnName(1) + ": " + rs.getInt(1) + "\n";
            result += rsmd.getColumnName(2) + ": " + rs.getString(2) + "\n";
            result += rsmd.getColumnName(3) + ": " + rs.getString(3) + "\n";
        }
        tv.setText(result);
    }
    catch(Exception e) {
        e.printStackTrace();
        tv.setText(e.toString());
    }   

}

}

Ответ 3

Поддерживаются ли Android-устройства JDBC.

Будет ли поддержка Android 2.2 JDBC.

Если поддерживается, какие версии Android будут поддерживать JDBC.

NO android не поддерживает локальную базу данных MYSQL, поэтому мы не можем использовать JDBC-соединение frmo android device, его поддержку только базы данных sqlite.

и если вы хотите использовать свою базу данных с сервера, тогда просто создайте для нее веб-службы, все соединения базы данных затем обрабатываются с сервера.

однако его помощь вам понять JDBC и android horrible!! SO Вопрос

Ответ 4

Похоже, что ваша установка Mysql позволяет подключаться только к локальному хосту. Обновите конфигурацию Mysql, чтобы разрешить соединения с любого хоста.

Из того, что я вижу, поддерживается java.sql, поскольку уровень API-уровня 1 и я полагаю, что поддержка будет удалена в ближайшее время.

/Томас