본문 바로가기
MySql

MySQL Connector / J가 Android에서 작동하도록하는 방법은 무엇입니까?

by 베이스 공부 2020. 12. 3.
반응형

로컬 Linux 시스템에서 실행되는 MySQL 서버가 있습니다. MySQL Connector / J를 사용하는 간단한 Java 프로그램 (eclipse 내부에서 실행 됨)을 통해 SQL 문을 실행하고 통신하는 데 문제가 없었습니다. 다음은 내 간단한 Java 프로그램입니다.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.lang.*;


public class main{
    private static void request(){
        String url = "jdbc:mysql://myadress:3306/mydatabase";
        String user = "user";
        String passwd = "passwd";

        Connection conn = null;
        try{
            /* Initializing the connection */
            conn = DriverManager.getConnection(url, user, passwd);

            Statement statement = conn.createStatement();

            ResultSet resultset = statement.executeQuery(/* MY SQL reqquest */);

            while(resultset.next()){
                System.out.println(resultset.getString(/* THE COLUMN AND ROW I WANTED IN MY REQUEST */));       
            }

        }catch(SQLException e){
            System.out.println("SQL connection error: " + e.getMessage());
        }finally {
            if(conn != null){
                try{
                    /* CLosing connection */
                    conn.close();
                }catch (SQLException e){
                    System.out.println("Error while closing the connection: " + e.getMessage());
                }
            }
        }
    }
    public static void main(String[] args) {
        try{ // Loading the MySQL Connector/J driver
            Class.forName("com.mysql.jdbc.Driver");
        }catch(ClassNotFoundException e){
            System.out.println("Error while loading the Driver: " + e.getMessage());
        }
        request();
    }

}

이 코드는 Eclipse 내에서 완벽하게 작동하며 문제없이 UPDATE SQL 요청만큼 SELECT를 수행 할 수 있습니다. 이 요청 메서드를 MainActivity.java 클래스에 적용하려고하면 Android 애플리케이션이 드라이버를 올바르게로드하지만 MySQL 서버와 통신 할 수없고 오류를 반환합니다.

이전 코드에서 내 서버에 로컬 IP 주소를 입력하고 내 안드로이드 폰을 Wi-Fi에 연결하면 내 앱에서 다음을 반환합니다.

"통신 링크 실패. 마지막 패킷이 성공적으로 server was 0 milliseconds ago. The driver has not received any packets 서버에서. "

그러나 동일한 이전 코드로 내 서버에 외부 IP 주소를 입력하려고하면 (MySQL 포트가 인터넷에 열려 있고 내 서버가 모든 IP를 수신하고 있다는 걱정은하지 마십시오) LTE 인터넷 연결을 통해 내 안드로이드 폰을 사용하십시오. , 다른 오류가 발생합니다.

"데이터베이스 서버에 연결할 수 없습니다."

지금까지 내 연구 중 어느 것도 도움이되지 않았습니다. 누구든지 내 문제가 어디서 왔는지 알 수 있습니까? 미리 감사드립니다 :)

 

해결 방법

 



일반적인 조언-Android에서 타사 JAR를 사용하려고 할 때마다 후자와 호환되는지 또는 Android 전용 포트가 있는지 확인하십시오.

 

참조 페이지 https://stackoverflow.com/questions/25044910

 

 

반응형

댓글