0
올바른 IP : Port가있어서 통신 문제가 어디에서 발생했는지 알 수 없으므로 communicationsexception은 깨진 URL에서 온 것입니다 : mysql 데이터베이스 용 포트 .안드로이드 : com.mysql.jdbc.exceptions.jdbc4.communicationsexception 통신 링크 오류
package com.bbb.aaa;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity {
private static final String url = "jdbc:mysql://uk1.khttp.net:2083/thedatabase"; // uk1.khttp.net == 95.154.195.28
private static final String user = "theusername";
private static final String pass = "thepassword";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println("About to try instantiating driver");
TextView tv = (TextView)this.findViewById(R.id.text_view);
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.print("success");
Connection con = DriverManager.getConnection(url, user, pass);
String result = "Database connection success\n";
System.out.print("success2");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM testingregistration");
System.out.print("success3");
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);
tv.setText("Driver instantiated");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
tv.setText(".....Class com.mysql.jdbc.Driver not found!");
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
tv.setText(e.toString());
}
}
}
ERROR LOG: The last packet sent successfuly to the server was 0 milliseconds ago. The driver has not recieved any packets from the server
콘솔은 "성공"을 읽고 인쇄하지만 그 다음에 충돌이 발생하므로 문제가 연결되었음을 의미하는 "성공 2"가 인쇄되지 않습니다.
나는 인터넷에서이 문제를 찾으려고했지만 포트/데이터베이스가 정확해야한다는 것이 모두 나와 맞았다. 그러나이 URL과 포트를 사용하여 로그인 할 수 있기 때문에 올바른 것으로 보인다. mysql을 누른 다음 phpMyAdmin과 im을 데이터베이스에서 클릭한다. 사전
매니페스트에서 인터넷에 연결할 수있는 권한이 있는지 확인하십시오. – Bartek
허락 해 주셔서 감사합니다. 비록 내가 여전히 같은 오류가 발생하고 첫 번째 "성공"이후의 스크립트 버그가 콘솔에 출력됩니다. – user1953302
이 대답의 제안을보십시오 - http://stackoverflow.com/a/12233178/392781. – Bartek