Ich habe eine einfache Datenbank zum Testen vorgesetzt, auf meinen Computer mit einer Datenbank auf einem anderen Computer zu verbinden, verwendet werden, und ich versuche, einige Informationen aus der Datenbank abgerufen wird, von meinem Laptop. Also möchte ich, dass mein Laptop eine Anfrage stellt, um die Informationen in meiner Computer MySQL-Datenbank zu sehen. Im Folgenden wird der Java-Code gezeigt, den ich auf meinem Laptop ausführen möchte, um den ersten Eintrag in der Students-Tabelle zu sammeln, die sich auf meinem Computer befindet.Wie kann der Java-SQL-Anschluss
Ich habe Werkbank MySQL installiert auf beiden meinen Laptop und Computer, ist es notwendig, auf beiden Rechnern zu sein, wenn der Computer die Daten gespeichert werden und der Laptop nur Daten extrahiert.
Was ich bisher aus der Forschung gelernt habe, ist, dass die öffentliche IP in der URL statt der IP für den Computer verwendet werden sollte, also fügte ich das hinzu, aber ich erhielt eine CommunicationsException zusammen mit "Connection timed out" in die Stapelverfolgung. Ich habe gelesen durch this Antwort und this Antwort auf ein ähnliches Problem, aber ich habe Schwierigkeiten, die beiden Lösungen zu verstehen, könnte jemand mich zu einem Anfänger verweisen führen aus der Ferne Daten aus einer Datenbank den Zugriff auf MySQL.
public class TestRemote{
//JDBC variables
Connection connection;
Statement statement;
ResultSet resultSet;
//String variables
String url;
String user;
String password;
public static void main(String[] args) {
TestRemote sql = new TestRemote();
ArrayList<String> firstnames = sql.getColumn("students", "firstname", "studentid=4");
System.out.println(firstnames.get(0));
}
// Constructor
public TestRemote()
{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
System.out.println("couldnt find class");
}
url = "jdbc:mysql://81.159.3.167:3306/test"; //?autoReconnect=true&useSSL=false";
user = "user";
password = "pass123";
connection = null;
statement = null;
resultSet = null;
}
private void closeConnection(){
try{
if(connection != null)
connection.close();
if(statement != null)
statement.close();
if(resultSet != null)
resultSet.close();
connection=null; resultSet=null; statement=null;
}catch(Exception e){
e.printStackTrace();
}
}
public ArrayList<String> getColumn(String table, String column, String where) {
ArrayList<String> resultsArray = new ArrayList<String>();
try {
connection = DriverManager.getConnection(url, user, password);
statement = connection.createStatement();
if(!where.equals(""))
resultSet = statement.executeQuery("SELECT "+column+" FROM "+table + " WHERE "+where);
else
resultSet = statement.executeQuery("SELECT "+column+" FROM "+table);
while(resultSet.next()) {
String val = resultSet.getString(1);
if(val==null)
resultsArray.add("");
else
resultsArray.add(val);
}
//resultsArray = (ArrayList<String>) resultSet.getArray(column);
} catch (SQLException ex) {
Logger lgr = Logger.getLogger(Model.class.getName());
lgr.log(Level.SEVERE, ex.getMessage(), ex);
}
closeConnection();
return resultsArray;
}
}
* MySQL Workbench beiden Laptops installiert * - Sie müssen MySQL-Datenbank zu verbinden, nicht Werkbank. Auch nur auf einer ist in Ordnung. Second kann mit der IP-Adresse auf dasselbe Netzwerk zugreifen. – GurV