2014-10-10 3 views
0

Я пишу приложение, которое должно связываться с базой данных MySQL. Ive успешно добавляет класс драйвера mysql .. *. Jar к проекту и загружается тоже. Но если я пытаюсь подключиться к Databse я получаю следующее сообщение об ошибке:Ошибка подключения android к SQL

10-09 21:01:01.626 27334-27334/dd.edope.quizmasters D/libc﹕ [NET] getaddrinfo hostname mysql.1freehosting.com, servname NULL, ai_family 0 

10-09 21: 01: 01.626 27334-27334/dd.edope.quizmasters W/System.err:

ком .mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Не удалось создать соединение с сервером базы данных.

Вот мой код:

private static final String url = "jdbc:mysql://mysql.1freehosting.com/u741539452_quiz"; 
private static final String user = "...."; 
private static final String pass = "...."; 

public void testDB() { 
    TextView tv = (TextView)rootView.findViewById(R.id.question); 
    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 Frage"); 
     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()); 
    } 

} 

Может быть неправильно URL в базе данных? На домашней странице 1freehosting.com говорится, что адрес узла - «mysql.1freehosting.com», но я не уверен, что это правильный URL-адрес для соединения db.

Любые идеи для обработки? Большое спасибо.

ответ

0

Наиболее вероятно, что вы не можете получить доступ к этой базе данных с удаленного устройства. Вы можете получить доступ к нему только с помощью скрипта, запущенного на этом сервере. Если это так, вы можете создать веб-сервис, который делает запросы к базе данных. Затем ваше приложение передает HTTP-запросы этой службе.

+0

В чем причина не обращения к нему с помощью пульта дистанционного управления? Мое предположение заключается в том, что URL-адрес базы данных неверен, но я не знаю, где проверить его правильность. – theAlgorithmGod

+0

Доступ к нему возможен только по соображениям безопасности. – Kai

0

Создание проекта Java в Eclipse,

создать пакет Имя com.example.sql

Включите mysqlconnector.jar в проекте

package com.example.sql; 

import java.sql.DriverManager; 
import java.sql.Connection; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.SQLException; 

public class JDBCExample { 
    public static Connection con; 

    public static void main(String[] argv) { 
     try 
     { 
      connectionQuery(); 

      PreparedStatement statement = con.prepareStatement("SELECT * from table_name");/*write query inside of prepared statement*/ 
      ResultSet result = statement.executeQuery(); 
      System.out.println("DataBase table accessed"); 

      while(result.next()) 
      { 
       String retrievedid= result.getString("Column_name"); 

       System.out.println(retrievedid); 
      } 


      con.close(); 
     } 

     catch(Exception e) 
     { 
      e.printStackTrace(); 
      System.out.println(e.getMessage().toString()); 
     } 
    } 

    public static void connectionQuery() 
    { 
     try 
     { 
      Class.forName("com.mysql.jdbc.Driver"); 
      con = DriverManager.getConnection("jdbc:mysql://localhost:3306/boopathi","root","root"); 
      System.out.println("Remote DB connection established"); 
     } 
     catch (ClassNotFoundException e) 
     { 
      e.printStackTrace(); 
      System.out.println("Remote server could not be connected"); 
     } 
     catch (NullPointerException e) 
     { 
      e.printStackTrace(); 
      System.out.println("Remote server could not be connected"); 
     } 
     catch (SQLException e) 
     { 
      e.printStackTrace(); 
      System.out.println("Remote db connection establishment error"); 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
      System.out.println("False query"); 
     } 
    } 
} 

Над кодом для местного ACCESSING, если хотите получить доступ к использованию общего сервера ссылке ниже

Refer this link for get to know how to write a service

Смежные вопросы