0

내가 개발하는 응용 프로그램에 문제가 있습니다. 안드로이드에서 내 응용 프로그램과 함께 WIFI 네트워크의 로컬에있는 MySQL의 데이터베이스에 연결하려고합니다. mysql-connector-java 5.1.23을 사용하여이 방법을 직접 사용합니다. 응용 프로그램이 내 넥서스 1 (Android 2.3)에서 제대로 작동합니다. 하지만 내 넥서스 7 (Android 4.2)에는 없습니다.
나는 오류가있어 내 넥서스 7에 시장 (connect2sql)의 응용 프로그램을 사용하여, 그러나 "com.mysql.jdbc.exceptions.jdbc4.communicationsexception communications link failure"안드로이드 - MySQL 데이터베이스에 대한 액세스 - 통신 연결

을, 나는 쉽게 데이터베이스에 액세스 할 수 있습니다. 오류는 Android 버전 (2.3 vs 4.2)과 관련이 있다고 생각합니다 (하지만 이해할 수는 없습니다). 누군가이 문제를 이미 해결 했습니까?

문제에 대한 도움을 주셔서 대단히 감사드립니다.

(내가 JDK 1.6 개발하기 위해 Eclipse를 사용 - 대상 API는 안드로이드 4.2에 해당하는 17)

이것은 코드입니다 :

package fr.apln.Rocketry_Challenge; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 
import android.widget.Toast; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.Statement; 
import java.sql.SQLException; 

public class testdirectmysql extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.screen_testphpmysql); 

     try { 
     Class.forName("com.mysql.jdbc.Driver").newInstance(); 
     Connection con = DriverManager.getConnection("jdbc:mysql://192.168.1.50:3306/Rocketry_Challenge_1", "android", "XXXXX"); 

     Statement st = con.createStatement(); 
     st.executeQuery("USE Rocketry_Challenge_1;"); 
     Toast.makeText(this, "C'est passé", Toast.LENGTH_LONG).show(); 
     ResultSet rs = st.executeQuery("SELECT * FROM projets;"); 
     while(rs.next()) { 
     Toast.makeText(this, "Projet : "+rs.getString(2)+"/Club : "+rs.getString(3), Toast.LENGTH_LONG).show(); 

     } 
     } catch (Exception e) { 
      Toast.makeText(this, String.valueOf(e), Toast.LENGTH_LONG).show(); 
     } 
    } 
} 
+0

코드를 게시 할 수 있습니까? –

+1

나는 데이터베이스 서버에 원격 직접 연결하는 것은 좋지 않다고 생각한다. 웹 서비스/API가 이상적입니다. –

+0

데이터베이스가 로컬 네트워크 (WIFI 사용 가능)에 있기 때문에 하드 코드를 작성해 주셨습니다. 보안 문제가 없습니다. PHP에서 Webservice (예를 들어) 내가 생각하는 낮은 부가 가치에 대한 무거운 구현입니다 ... – Newos

답변

0

어제 다른 개발자를 보았다, 나는 해결할 수 내 문제. 내 기능이 메인 스레드에 있었기 때문에 Android 4.2가 너무 느려서 차단했습니다. Android 2.3의 경우는 아닙니다. Asynctask에서 함수를 만들려고했는데 제대로 작동합니다.

답장을 보내 주셔서 감사합니다.

관련 문제