Проблема с JDBC в Android - не удается подключиться к базе данных - PullRequest
2 голосов
/ 02 августа 2011

Я новичок в JDBC и Android.Так что извините, если вопрос кажется глупым.Я пытаюсь подключиться к базе данных MySql из приложения.Я прошел учебник по jdbc и написал следующий код:


 public static void connectToServer () <br>
    { <br>
        Connection conn = null; <br>
        try<br>
        {<br>
            //Connect to the database
            String userName = "********";
            String password = "********";
            String url = "jdbc:mysql://my.domain.name/myDBname";
            Class.forName ("com.mysql.jdbc.Driver").newInstance ();
            conn = DriverManager.getConnection (url, userName, password);
            Log.e(tag,"Database connection established");

            // Query the database
            Statement s = conn.createStatement ();
            String query = "INSERT INTO myTableName (A,B,C)" +
                            "VALUES ('a','b','c')");
            Log.e(tag,query);
            s.executeQuery (query);
            s.close ();            
        }
        catch (Exception e)
        {
            Log.e(tag,"Database Connection Failed");
            Log.e(tag,e.getMessage());
        }        
        finally
        {
            if (conn != null)
            {
                try
                {
                    conn.close ();
                    Log.e(tag,"Database connection terminated");
                }
                catch (Exception e) { /* ignore close errors */ }
            }
        }
    }


Мой код манифеста:
< uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><br> < uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><br>
Logcat:
....<br> Database connection terminated //my output <br> com.mysql.jdbc.Driver // output from exception e.getMessage()

Что я делаю не так?
Есть ли разница между подключением из Java-приложения и Android-приложения?

РЕДАКТИРОВАТЬ: Добавлены разрешения манифеста

Ответы [ 3 ]

3 голосов
/ 02 августа 2011

Убедитесь, что вы запрашиваете интернет-разрешения в своем манифесте.

РЕДАКТИРОВАТЬ: Для этого добавьте <uses-permission android:name="android.permission.INTERNET" /> в свой манифест.

Только что найдено эта ссылка,Не уверен, что это можно сделать легко.

Также стоит обратить внимание на CouchDB.Он основан на REST, поэтому вам не нужно будет создавать php-сервис вокруг MySQL DB - это просто REST.

0 голосов
/ 02 августа 2011

Почему бы не потратить некоторое время на изучение android.database.sqlite? ИМХО, в конечном итоге это будет стоить того.

Удачи.

0 голосов
/ 02 августа 2011

Я знаю, что это сработало для некоторых. Убедитесь, что вы используете JDBC-соединитель mysql-connector-java-3.0.17-ga-bin.jar. Google для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...